📄 卷积处理.frm
字号:
ScaleHeight = 3915
ScaleWidth = 3915
TabIndex = 1
Top = 240
Width = 3975
Begin VB.TextBox Text1
Height = 495
Index = 0
Left = 720
TabIndex = 16
Text = "-1"
Top = 480
Width = 495
End
Begin VB.Label Label11
Caption = "5"
Height = 375
Left = 240
TabIndex = 15
Top = 3480
Width = 255
End
Begin VB.Label Label10
Caption = "4"
Height = 375
Left = 240
TabIndex = 14
Top = 2880
Width = 255
End
Begin VB.Label Label9
Caption = "5"
Height = 375
Left = 3360
TabIndex = 13
Top = 120
Width = 375
End
Begin VB.Label Label8
Caption = "4"
Height = 375
Left = 2760
TabIndex = 12
Top = 120
Width = 375
End
Begin VB.Label Label1
Caption = "1"
Height = 375
Index = 0
Left = 840
TabIndex = 7
Top = 120
Width = 375
End
Begin VB.Label Label2
Caption = "2"
Height = 375
Left = 1560
TabIndex = 6
Top = 120
Width = 375
End
Begin VB.Label Label3
Caption = "3"
Height = 375
Left = 2280
TabIndex = 5
Top = 120
Width = 375
End
Begin VB.Label Label4
Caption = "1"
Height = 495
Left = 240
TabIndex = 4
Top = 600
Width = 255
End
Begin VB.Label Label5
Caption = "2"
Height = 495
Left = 240
TabIndex = 3
Top = 1440
Width = 255
End
Begin VB.Label Label6
Caption = "3"
Height = 375
Left = 240
TabIndex = 2
Top = 2160
Width = 375
End
End
Begin VB.Label Label7
Caption = "请选择模板:"
Height = 375
Left = 240
TabIndex = 10
Top = 960
Width = 1215
End
End
End
Attribute VB_Name = "frmjjmodel"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub jj_Click()
Dim w(24) As Integer
Dim n, m As Integer
Dim pixel(3, 300, 300) As Long
frmMain.Pic2.Cls
Screen.MousePointer = 11
frmMain.ProgressBar1.Min = 0
frmMain.ProgressBar1.Max = frmMain.Pic1.ScaleWidth
frmMain.ProgressBar1.Visible = True
frmMain.ProgressBar1.Value = frmMain.ProgressBar1.Min
k = 0
If Option1.Value Then
For i = 0 To 8
w(i) = Val(Text1(i).Text)
Next i
n = frmMain.Pic1.ScaleWidth
m = frmMain.Pic1.ScaleHeight
For i = 0 To n
For j = 0 To m
c = frmMain.Pic1.Point(i, j)
pixel(0, i, j) = c And &HFF
pixel(1, i, j) = (c And 65280) \ 256
pixel(2, i, j) = (c And &HFF0000) \ 65536
Next j
Next i
For i = 1 To n - 1 '边界作不处理
For j = 1 To m - 1 '边界作不处理
r = pixel(0, i - 1, j - 1) * w(0) + pixel(0, i - 1, j) * w(1) + pixel(0, i - 1, j + 1) * w(2) + pixel(0, i, j - 1) * w(3) + pixel(0, i, j) * w(4) + pixel(0, i, j + 1) * w(5) + pixel(0, i + 1, j - 1) * w(6) + pixel(0, i + 1, j) * w(7) + pixel(0, i + 1, j + 1) * w(8)
g = pixel(1, i - 1, j - 1) * w(0) + pixel(1, i - 1, j) * w(1) + pixel(1, i - 1, j + 1) * w(2) + pixel(1, i, j - 1) * w(3) + pixel(1, i, j) * w(4) + pixel(1, i, j + 1) * w(5) + pixel(1, i + 1, j - 1) * w(6) + pixel(1, i + 1, j) * w(7) + pixel(1, i + 1, j + 1) * w(8)
b = pixel(2, i - 1, j - 1) * w(0) + pixel(2, i - 1, j) * w(1) + pixel(2, i - 1, j + 1) * w(2) + pixel(2, i, j - 1) * w(3) + pixel(2, i, j) * w(4) + pixel(2, i, j + 1) * w(5) + pixel(2, i + 1, j - 1) * w(6) + pixel(2, i + 1, j) * w(7) + pixel(2, i + 1, j + 1) * w(8)
If r > 255 Then r = 255
If r < 0 Then r = 0
If g > 255 Then g = 255
If g < 0 Then g = 0
If b > 255 Then b = 255
If b < 0 Then b = 0
frmMain.Pic2.PSet (i, j), RGB(r, g, b)
Next j
frmMain.ProgressBar1.Value = k
k = k + 1
Next i
frmMain.ProgressBar1.Visible = False
Screen.MousePointer = 0
End If
If Option2.Value Then
For i = 0 To 24
w(i) = Val(Text1(i).Text)
Next i
n = frmMain.Pic1.ScaleWidth
m = frmMain.Pic1.ScaleHeight
For i = 0 To n
For j = 0 To m
c = frmMain.Pic1.Point(i, j)
pixel(0, i, j) = c And &HFF
pixel(1, i, j) = (c And 65280) \ 256
pixel(2, i, j) = (c And &HFF0000) \ 65536
Next j
Next i
For i = 2 To n - 1 '边界作不处理
For j = 2 To m - 1 '边界作不处理
r = pixel(0, i - 2, j - 2) * w(0) + pixel(0, i - 2, j - 1) * w(1) + pixel(0, i - 2, j) * w(2) + pixel(0, i - 2, j + 1) * w(10) + pixel(0, i - 2, j + 2) * w(12) + _
pixel(0, i - 1, j - 2) * w(3) + pixel(0, i - 1, j - 1) * w(4) + pixel(0, i - 1, j) * w(5) + pixel(0, i - 1, j + 1) * w(11) + pixel(0, i - 1, j + 2) * w(9) + _
pixel(0, i, j - 2) * w(6) + pixel(0, i, j - 1) * w(7) + pixel(0, i, j) * w(8) + pixel(0, i, j + 1) * w(13) + pixel(0, i, j + 2) * w(14) + _
pixel(0, i + 1, j - 2) * w(15) + pixel(0, i + 1, j - 1) * w(16) + pixel(0, i + 1, j) * w(17) + pixel(0, i + 1, j + 1) * w(18) + pixel(0, i + 1, j + 2) * w(19) + _
pixel(0, i + 2, j - 2) * w(20) + pixel(0, i + 2, j - 1) * w(21) + pixel(0, i + 2, j) * w(22) + pixel(0, i + 2, j + 1) * w(23) + pixel(0, i + 2, j + 2) * w(24)
g = pixel(1, i - 2, j - 2) * w(0) + pixel(1, i - 2, j - 1) * w(1) + pixel(1, i - 2, j) * w(2) + pixel(1, i - 2, j + 1) * w(10) + pixel(1, i - 2, j + 2) * w(12) + _
pixel(1, i - 1, j - 2) * w(3) + pixel(1, i - 1, j - 1) * w(4) + pixel(1, i - 1, j) * w(5) + pixel(1, i - 1, j + 1) * w(11) + pixel(1, i - 1, j + 2) * w(9) + _
pixel(1, i, j - 2) * w(6) + pixel(0, i, j - 1) * w(7) + pixel(1, i, j) * w(8) + pixel(1, i, j + 1) * w(13) + pixel(1, i, j + 2) * w(14) + _
pixel(1, i + 1, j - 2) * w(15) + pixel(1, i + 1, j - 1) * w(16) + pixel(1, i + 1, j) * w(17) + pixel(1, i + 1, j + 1) * w(18) + pixel(1, i + 1, j + 2) * w(19) + _
pixel(1, i + 2, j - 2) * w(20) + pixel(1, i + 2, j - 1) * w(21) + pixel(1, i + 2, j) * w(22) + pixel(1, i + 2, j + 1) * w(23) + pixel(1, i + 2, j + 2) * w(24)
b = pixel(2, i - 2, j - 2) * w(0) + pixel(2, i - 2, j - 1) * w(1) + pixel(2, i - 2, j) * w(2) + pixel(2, i - 2, j + 1) * w(10) + pixel(2, i - 2, j + 2) * w(12) + _
pixel(2, i - 1, j - 2) * w(3) + pixel(2, i - 1, j - 1) * w(4) + pixel(2, i - 1, j) * w(5) + pixel(2, i - 1, j + 1) * w(11) + pixel(2, i - 1, j + 2) * w(9) + _
pixel(2, i, j - 2) * w(6) + pixel(2, i, j - 1) * w(7) + pixel(2, i, j) * w(8) + pixel(2, i, j + 1) * w(13) + pixel(0, i, j + 2) * w(14) + _
pixel(2, i + 1, j - 2) * w(15) + pixel(2, i + 1, j - 1) * w(16) + pixel(2, i + 1, j) * w(17) + pixel(2, i + 1, j + 1) * w(18) + pixel(2, i + 1, j + 2) * w(19) + _
pixel(2, i + 2, j - 2) * w(20) + pixel(2, i + 2, j - 1) * w(21) + pixel(2, i + 2, j) * w(22) + pixel(2, i + 2, j + 1) * w(23) + pixel(2, i + 2, j + 2) * w(24)
If r > 255 Then r = 255
If r < 0 Then r = 0
If g > 255 Then g = 255
If g < 0 Then g = 0
If b > 255 Then b = 255
If b < 0 Then b = 0
frmMain.Pic2.PSet (i, j), RGB(r, g, b)
Next j
frmMain.ProgressBar1.Value = k
k = k + 1
Next i
frmMain.ProgressBar1.Visible = False
Screen.MousePointer = 0
End If
'Unload Me
End Sub
Private Sub Form_Load()
frmMain.Pic1.ScaleMode = 3
frmMain.Pic2.ScaleMode = 3
Label8.Enabled = False
Label9.Enabled = False
Label10.Enabled = False
Label11.Enabled = False
For i = 0 To 3
Text1(i).Text = -1
Next i
For i = 5 To 8
Text1(i).Text = -1
Next i
For i = 9 To 24
Text1(4).Text = 8
Text1(i).Enabled = False
Text1(i).BackColor = &HE0E0E0
Next i
End Sub
Private Sub Option1_Click()
Call Form_Load
End Sub
Private Sub Option2_Click()
Label8.Enabled = True
Label9.Enabled = True
Label10.Enabled = True
Label11.Enabled = True
Text1(3).Enabled = True
Text1(4).Enabled = True
Text1(8).Enabled = True
Text1(9).Enabled = True
For i = 9 To 24
Text1(i).Enabled = True
Text1(i).BackColor = &HFFFFFF
Text1(i).Text = -1
Next i
For i = 0 To 7
Text1(i).Text = -1
Next i
Text1(8).Text = 10
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -