Source Code Program Citra
Source Code Program Citra
With bmap
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
With bmap
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
Red = CInt(.GetPixel(j, i).R) * MF(1, 1)
Green = CInt(.GetPixel(j, i).G) * MF(1, 1)
Blue = CInt(.GetPixel(j, i).B) * MF(1, 1)
With bmap
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
Red = CInt(.GetPixel(j, i).R) * MF(1, 1)
Green = CInt(.GetPixel(j, i).G) * MF(1, 1)
Blue = CInt(.GetPixel(j, i).B) * MF(1, 1)
If j - 1 < 1 And i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i - 1).R) *
MF(0, 0))
Green = Green + (CInt(.GetPixel(j - 1, i - 1).G) *
MF(0, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i - 1).B) *
MF(0, 0))
End If
If i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 1))
Else
Red = Red + (CInt(.GetPixel(j, i - 1).R) * MF(0,
1))
Green = Green + (CInt(.GetPixel(j, i - 1).G) *
MF(0, 1))
Blue = Blue + (CInt(.GetPixel(j, i - 1).B) * MF(0,
1))
End If
If j + 1 > .Width - DY - 1 And i - 1 > 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i - 1).R) *
MF(0, 2))
Green = Green + (CInt(.GetPixel(j + 1, i - 1).G) *
MF(0, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i - 1).B) *
MF(0, 2))
End If
If j - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i).R) * MF(1,
0))
Green = Green + (CInt(.GetPixel(j - 1, i).G) *
MF(1, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i).B) * MF(1,
0))
End If
If j + 1 > .Width - DY - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i).R) * MF(1,
2))
Green = Green + (CInt(.GetPixel(j + 1, i).G) *
MF(1, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i).B) * MF(1,
2))
End If
If j - 1 < 1 And i + 1 > .Height - DX - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i + 1).R) *
MF(2, 0))
Green = Green + (CInt(.GetPixel(j - 1, i + 1).G) *
MF(2, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i + 1).B) *
MF(2, 0))
End If
If i + 1 > .Height - DX - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 1))
Else
Red = Red + (CInt(.GetPixel(j, i + 1).R) * MF(2,
1))
Green = Green + (CInt(.GetPixel(j, i + 1).G) *
MF(2, 1))
Blue = Blue + (CInt(.GetPixel(j, i + 1).B) * MF(2,
1))
End If
If j + 1 > .Width - DY - 1 And i + 1 > .Height - DX - 1
Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i + 1).R) *
MF(2, 2))
Green = Green + (CInt(.GetPixel(j + 1, i + 1).G) *
MF(2, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i + 1).B) *
MF(2, 2))
End If
If Red < 0 Then
Red = 0
Else
If Red > 255 Then
Red = 255
End If
End If
If Green < 0 Then
Green = 0
Else
If Green > 255 Then
Green = 255
End If
End If
If Blue < 0 Then
Blue = 0
Else
If Blue > 255 Then
Blue = 255
End If
End If
[Link](j, i, [Link](Red, Green, Blue))
Next
If i Mod 10 = 0 Then
[Link]()
[Link] = Int(100 * i / ([Link] -
2)).ToString & "%"
[Link] = Int(100 * i /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Proses Prewit Vertikal Image berhasil"
End Sub
With bmap
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
Red = CInt(.GetPixel(j, i).R) * MF(1, 1)
Green = CInt(.GetPixel(j, i).G) * MF(1, 1)
Blue = CInt(.GetPixel(j, i).B) * MF(1, 1)
If j - 1 < 1 And i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i - 1).R) *
MF(0, 0))
Green = Green + (CInt(.GetPixel(j - 1, i - 1).G) *
MF(0, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i - 1).B) *
MF(0, 0))
End If
If i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 1))
Else
Red = Red + (CInt(.GetPixel(j, i - 1).R) * MF(0,
1))
Green = Green + (CInt(.GetPixel(j, i - 1).G) *
MF(0, 1))
Blue = Blue + (CInt(.GetPixel(j, i - 1).B) * MF(0,
1))
End If
If j + 1 > .Width - DY - 1 And i - 1 > 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i - 1).R) *
MF(0, 2))
Green = Green + (CInt(.GetPixel(j + 1, i - 1).G) *
MF(0, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i - 1).B) *
MF(0, 2))
End If
If j - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i).R) * MF(1,
0))
Green = Green + (CInt(.GetPixel(j - 1, i).G) *
MF(1, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i).B) * MF(1,
0))
End If
If j + 1 > .Width - DY - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i).R) * MF(1,
2))
Green = Green + (CInt(.GetPixel(j + 1, i).G) *
MF(1, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i).B) * MF(1,
2))
End If
If j - 1 < 1 And i + 1 > .Height - DX - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i + 1).R) *
MF(2, 0))
Green = Green + (CInt(.GetPixel(j - 1, i + 1).G) *
MF(2, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i + 1).B) *
MF(2, 0))
End If
If i + 1 > .Height - DX - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 1))
Else
Red = Red + (CInt(.GetPixel(j, i + 1).R) * MF(2,
1))
Green = Green + (CInt(.GetPixel(j, i + 1).G) *
MF(2, 1))
Blue = Blue + (CInt(.GetPixel(j, i + 1).B) * MF(2,
1))
End If
With bmap
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
Red = CInt(.GetPixel(j, i).R) * MF(1, 1)
Green = CInt(.GetPixel(j, i).G) * MF(1, 1)
Blue = CInt(.GetPixel(j, i).B) * MF(1, 1)
If j - 1 < 1 And i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i - 1).R) *
MF(0, 0))
Green = Green + (CInt(.GetPixel(j - 1, i - 1).G) *
MF(0, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i - 1).B) *
MF(0, 0))
End If
If i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 1))
Else
Red = Red + (CInt(.GetPixel(j, i - 1).R) * MF(0,
1))
Green = Green + (CInt(.GetPixel(j, i - 1).G) *
MF(0, 1))
Blue = Blue + (CInt(.GetPixel(j, i - 1).B) * MF(0,
1))
End If
If j + 1 > .Width - DY - 1 And i - 1 > 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i - 1).R) *
MF(0, 2))
Green = Green + (CInt(.GetPixel(j + 1, i - 1).G) *
MF(0, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i - 1).B) *
MF(0, 2))
End If
If j - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i).R) * MF(1,
0))
Green = Green + (CInt(.GetPixel(j - 1, i).G) *
MF(1, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i).B) * MF(1,
0))
End If
If j + 1 > .Width - DY - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i).R) * MF(1,
2))
Green = Green + (CInt(.GetPixel(j + 1, i).G) *
MF(1, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i).B) * MF(1,
2))
End If
With bmap
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
With bmap
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
Red = CInt(.GetPixel(j, i).R) * MF(1, 1)
Green = CInt(.GetPixel(j, i).G) * MF(1, 1)
Blue = CInt(.GetPixel(j, i).B) * MF(1, 1)
If j - 1 < 1 And i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i - 1).R) *
MF(0, 0))
Green = Green + (CInt(.GetPixel(j - 1, i - 1).G) *
MF(0, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i - 1).B) *
MF(0, 0))
End If
If i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 1))
Else
Red = Red + (CInt(.GetPixel(j, i - 1).R) * MF(0,
1))
Green = Green + (CInt(.GetPixel(j, i - 1).G) *
MF(0, 1))
Blue = Blue + (CInt(.GetPixel(j, i - 1).B) * MF(0,
1))
End If
If j + 1 > .Width - DY - 1 And i - 1 > 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i - 1).R) *
MF(0, 2))
Green = Green + (CInt(.GetPixel(j + 1, i - 1).G) *
MF(0, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i - 1).B) *
MF(0, 2))
End If
If j - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i).R) * MF(1,
0))
Green = Green + (CInt(.GetPixel(j - 1, i).G) *
MF(1, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i).B) * MF(1,
0))
End If
If j + 1 > .Width - DY - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i).R) * MF(1,
2))
Green = Green + (CInt(.GetPixel(j + 1, i).G) *
MF(1, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i).B) * MF(1,
2))
End If
If j - 1 < 1 And i + 1 > .Height - DX - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i + 1).R) *
MF(2, 0))
Green = Green + (CInt(.GetPixel(j - 1, i + 1).G) *
MF(2, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i + 1).B) *
MF(2, 0))
End If
If i + 1 > .Height - DX - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 1))
Else
Red = Red + (CInt(.GetPixel(j, i + 1).R) * MF(2,
1))
Green = Green + (CInt(.GetPixel(j, i + 1).G) *
MF(2, 1))
Blue = Blue + (CInt(.GetPixel(j, i + 1).B) * MF(2,
1))
End If
If j + 1 > .Width - DY - 1 And i + 1 > .Height - DX - 1
Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i + 1).R) *
MF(2, 2))
Green = Green + (CInt(.GetPixel(j + 1, i + 1).G) *
MF(2, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i + 1).B) *
MF(2, 2))
End If
If Red < 0 Then
Red = 0
Else
If Red > 255 Then
Red = 255
End If
End If
If Green < 0 Then
Green = 0
Else
If Green > 255 Then
Green = 255
End If
End If
If Blue < 0 Then
Blue = 0
Else
If Blue > 255 Then
Blue = 255
End If
End If
[Link](j, i, [Link](Red, Green, Blue))
Next
If i Mod 10 = 0 Then
[Link]()
[Link] = Int(100 * i / ([Link] -
2)).ToString & "%"
[Link] = Int(100 * i /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Proses Laplasian 3 Image berhasil"
End Sub
With bmap
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
Red = CInt(.GetPixel(j, i).R) * MF(1, 1)
Green = CInt(.GetPixel(j, i).G) * MF(1, 1)
Blue = CInt(.GetPixel(j, i).B) * MF(1, 1)
If j - 1 < 1 And i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i - 1).R) *
MF(0, 0))
Green = Green + (CInt(.GetPixel(j - 1, i - 1).G) *
MF(0, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i - 1).B) *
MF(0, 0))
End If
If i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 1))
Else
Red = Red + (CInt(.GetPixel(j, i - 1).R) * MF(0,
1))
Green = Green + (CInt(.GetPixel(j, i - 1).G) *
MF(0, 1))
Blue = Blue + (CInt(.GetPixel(j, i - 1).B) * MF(0,
1))
End If
If j + 1 > .Width - DY - 1 And i - 1 > 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i - 1).R) *
MF(0, 2))
Green = Green + (CInt(.GetPixel(j + 1, i - 1).G) *
MF(0, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i - 1).B) *
MF(0, 2))
End If
If j - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i).R) * MF(1,
0))
Green = Green + (CInt(.GetPixel(j - 1, i).G) *
MF(1, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i).B) * MF(1,
0))
End If
If j + 1 > .Width - DY - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i).R) * MF(1,
2))
Green = Green + (CInt(.GetPixel(j + 1, i).G) *
MF(1, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i).B) * MF(1,
2))
End If
If j - 1 < 1 And i + 1 > .Height - DX - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i + 1).R) *
MF(2, 0))
Green = Green + (CInt(.GetPixel(j - 1, i + 1).G) *
MF(2, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i + 1).B) *
MF(2, 0))
End If
If i + 1 > .Height - DX - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 1))
Else
Red = Red + (CInt(.GetPixel(j, i + 1).R) * MF(2,
1))
Green = Green + (CInt(.GetPixel(j, i + 1).G) *
MF(2, 1))
Blue = Blue + (CInt(.GetPixel(j, i + 1).B) * MF(2,
1))
End If
If j + 1 > .Width - DY - 1 And i + 1 > .Height - DX - 1
Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i + 1).R) *
MF(2, 2))
Green = Green + (CInt(.GetPixel(j + 1, i + 1).G) *
MF(2, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i + 1).B) *
MF(2, 2))
End If
If Red < 0 Then
Red = 0
Else
If Red > 255 Then
Red = 255
End If
End If
If Green < 0 Then
Green = 0
Else
If Green > 255 Then
Green = 255
End If
End If
If Blue < 0 Then
Blue = 0
Else
If Blue > 255 Then
Blue = 255
End If
End If
[Link](j, i, [Link](Red, Green, Blue))
Next
If i Mod 10 = 0 Then
[Link]()
[Link] = Int(100 * i / ([Link] -
2)).ToString & "%"
[Link] = Int(100 * i /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Proses Sobel Vertikal Image berhasil"
End Sub
With bmap
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
Red = CInt(.GetPixel(j, i).R) * MF(1, 1)
Green = CInt(.GetPixel(j, i).G) * MF(1, 1)
Blue = CInt(.GetPixel(j, i).B) * MF(1, 1)
If j - 1 < 1 And i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i - 1).R) *
MF(0, 0))
Green = Green + (CInt(.GetPixel(j - 1, i - 1).G) *
MF(0, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i - 1).B) *
MF(0, 0))
End If
If i - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 1))
Else
Red = Red + (CInt(.GetPixel(j, i - 1).R) * MF(0,
1))
Green = Green + (CInt(.GetPixel(j, i - 1).G) *
MF(0, 1))
Blue = Blue + (CInt(.GetPixel(j, i - 1).B) * MF(0,
1))
End If
If j + 1 > .Width - DY - 1 And i - 1 > 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(0, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(0,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(0, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i - 1).R) *
MF(0, 2))
Green = Green + (CInt(.GetPixel(j + 1, i - 1).G) *
MF(0, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i - 1).B) *
MF(0, 2))
End If
If j - 1 < 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i).R) * MF(1,
0))
Green = Green + (CInt(.GetPixel(j - 1, i).G) *
MF(1, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i).B) * MF(1,
0))
End If
If j + 1 > .Width - DY - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(1, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(1,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(1, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i).R) * MF(1,
2))
Green = Green + (CInt(.GetPixel(j + 1, i).G) *
MF(1, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i).B) * MF(1,
2))
End If
If j - 1 < 1 And i + 1 > .Height - DX - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 0))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
0))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 0))
Else
Red = Red + (CInt(.GetPixel(j - 1, i + 1).R) *
MF(2, 0))
Green = Green + (CInt(.GetPixel(j - 1, i + 1).G) *
MF(2, 0))
Blue = Blue + (CInt(.GetPixel(j - 1, i + 1).B) *
MF(2, 0))
End If
If i + 1 > .Height - DX - 1 Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 1))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
1))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 1))
Else
Red = Red + (CInt(.GetPixel(j, i + 1).R) * MF(2,
1))
Green = Green + (CInt(.GetPixel(j, i + 1).G) *
MF(2, 1))
Blue = Blue + (CInt(.GetPixel(j, i + 1).B) * MF(2,
1))
End If
If j + 1 > .Width - DY - 1 And i + 1 > .Height - DX - 1
Then
Red = Red + (CInt(.GetPixel(j, i).R) * MF(2, 2))
Green = Green + (CInt(.GetPixel(j, i).G) * MF(2,
2))
Blue = Blue + (CInt(.GetPixel(j, i).B) * MF(2, 2))
Else
Red = Red + (CInt(.GetPixel(j + 1, i + 1).R) *
MF(2, 2))
Green = Green + (CInt(.GetPixel(j + 1, i + 1).G) *
MF(2, 2))
Blue = Blue + (CInt(.GetPixel(j + 1, i + 1).B) *
MF(2, 2))
End If
If Red < 0 Then
Red = 0
Else
If Red > 255 Then
Red = 255
End If
End If
If Green < 0 Then
Green = 0
Else
If Green > 255 Then
Green = 255
End If
End If
If Blue < 0 Then
Blue = 0
Else
If Blue > 255 Then
Blue = 255
End If
End If
[Link](j, i, [Link](Red, Green, Blue))
Next
If i Mod 10 = 0 Then
[Link]()
[Link] = Int(100 * i / ([Link] -
2)).ToString & "%"
[Link] = Int(100 * i /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Proses Sobel Horizontal Image berhasil"
End Sub
Private Sub MinToolStripMenuItem_Click(ByVal sender As [Link],
ByVal e As [Link]) Handles [Link]
If PicAda = False Then
MsgBox("Pilih dulu gambar yang akan diproses",
[Link] + [Link], "Error Proses")
Exit Sub
End If
bmap = New Bitmap([Link])
[Link] = bmap
Dim tempbmp As New Bitmap([Link])
Dim DX As Integer = 1
Dim DY As Integer = 1
Dim Red As Int64, Green As Int64, Blue As Int64
Dim tempRed(0 To 1000, 0 To 1000) As Int64, tempGreen(0 To 1000, 0
To 1000) As Int64, tempBlue(0 To 1000, 0 To 1000) As Int64
Dim i As Integer, j As Integer
[Link] = [Link]
[Link]()
With bmap
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
Dim minred, mingreen, minblue As Int64
Red = CLng(.GetPixel(j, i).R)
minred = Red
Green = CLng(.GetPixel(j, i).G)
mingreen = Green
Blue = CLng(.GetPixel(j, i).B)
minblue = Blue
If j - 1 < 1 And i - 1 < 1 Then
If minred > CLng(.GetPixel(j - 1, i - 1).R) Then
minred = Red
End If
If mingreen > CLng(.GetPixel(j - 1, i - 1).G) Then
mingreen = Green
End If
If minblue > CLng(.GetPixel(j - 1, i - 1).R) Then
minblue = Blue
End If
Else
If minred > CLng(.GetPixel(j - 1, i - 1).R) Then
minred = CLng(.GetPixel(j - 1, i - 1).R)
End If
If mingreen > CLng(.GetPixel(j - 1, i - 1).G) Then
mingreen = CLng(.GetPixel(j - 1, i - 1).G)
End If
If minblue > CLng(.GetPixel(j - 1, i - 1).B) Then
minblue = CLng(.GetPixel(j - 1, i - 1).B)
End If
End If
If i - 1 < 1 Then
If minred > CLng(.GetPixel(j, i - 1).R) Then
minred = Red
End If
If mingreen > CLng(.GetPixel(j, i - 1).G) Then
mingreen = Green
End If
If minblue > CLng(.GetPixel(j, i - 1).R) Then
minblue = Blue
End If
Else
If minred > CLng(.GetPixel(j, i - 1).R) Then
minred = CLng(.GetPixel(j, i - 1).R)
End If
If mingreen > CLng(.GetPixel(j, i - 1).G) Then
mingreen = CLng(.GetPixel(j, i - 1).G)
End If
If minblue > CLng(.GetPixel(j, i - 1).B) Then
minblue = CLng(.GetPixel(j, i - 1).B)
End If
End If
If j + 1 > .Width - DY - 1 And i - 1 > 1 Then
If minred > CLng(.GetPixel(j + 1, i - 1).R) Then
minred = Red
End If
If mingreen > CLng(.GetPixel(j + 1, i - 1).G) Then
mingreen = Green
End If
If minblue > CLng(.GetPixel(j + 1, i - 1).B) Then
minblue = Blue
End If
Else
If minred > CLng(.GetPixel(j + 1, i - 1).R) Then
minred = CLng(.GetPixel(j + 1, i - 1).R)
End If
If mingreen > CLng(.GetPixel(j + 1, i - 1).G) Then
mingreen = CLng(.GetPixel(j + 1, i - 1).G)
End If
If minblue > CLng(.GetPixel(j + 1, i - 1).B) Then
minblue = CLng(.GetPixel(j + 1, i - 1).B)
End If
End If
If j - 1 < 1 Then
If minred > CLng(.GetPixel(j - 1, i).R) Then
minred = Red
End If
If mingreen > CLng(.GetPixel(j - 1, i).G) Then
mingreen = Green
End If
If minblue > CLng(.GetPixel(j - 1, i).B) Then
minblue = Blue
End If
Else
If minred > CLng(.GetPixel(j - 1, i).R) Then
minred = CLng(.GetPixel(j - 1, i).R)
End If
If mingreen > CLng(.GetPixel(j - 1, i).G) Then
mingreen = CLng(.GetPixel(j - 1, i).G)
End If
If minblue > CLng(.GetPixel(j - 1, i).B) Then
minblue = CLng(.GetPixel(j - 1, i).B)
End If
End If
If j + 1 > .Width - DY - 1 Then
If minred > CLng(.GetPixel(j + 1, i).R) Then
minred = Red
End If
If mingreen > CLng(.GetPixel(j + 1, i).G) Then
mingreen = Green
End If
If minblue > CLng(.GetPixel(j + 1, i).B) Then
minblue = Blue
End If
Else
If minred > CLng(.GetPixel(j + 1, i).R) Then
minred = CLng(.GetPixel(j + 1, i).R)
End If
If mingreen > CLng(.GetPixel(j + 1, i).G) Then
mingreen = CLng(.GetPixel(j + 1, i).G)
End If
If minblue > CLng(.GetPixel(j + 1, i).B) Then
minblue = CLng(.GetPixel(j + 1, i).B)
End If
End If
If j - 1 < 1 And i + 1 > .Height - DX - 1 Then
If minred > CLng(.GetPixel(j - 1, i + 1).R) Then
minred = Red
End If
If mingreen > CLng(.GetPixel(j - 1, i + 1).G) Then
mingreen = Green
End If
If minblue > CLng(.GetPixel(j - 1, i + 1).B) Then
minblue = Blue
End If
Else
If minred > CLng(.GetPixel(j - 1, i + 1).R) Then
minred = CLng(.GetPixel(j - 1, i + 1).R)
End If
If mingreen > CLng(.GetPixel(j - 1, i + 1).G) Then
mingreen = CLng(.GetPixel(j - 1, i + 1).G)
End If
If minblue > CLng(.GetPixel(j - 1, i + 1).B) Then
minblue = CLng(.GetPixel(j - 1, i + 1).B)
End If
End If
If i + 1 > .Height - DX - 1 Then
If minred > CLng(.GetPixel(j, i + 1).R) Then
minred = Red
End If
If mingreen > CInt(.GetPixel(j, i + 1).G) Then
mingreen = Green
End If
If minblue > CLng(.GetPixel(j, i + 1).B) Then
minblue = Blue
End If
Else
If minred > CLng(.GetPixel(j, i + 1).R) Then
minred = CLng(.GetPixel(j, i + 1).R)
End If
If mingreen > CLng(.GetPixel(j, i + 1).G) Then
mingreen = CLng(.GetPixel(j, i + 1).G)
End If
If minblue > CLng(.GetPixel(j, i + 1).B) Then
minblue = CLng(.GetPixel(j, i + 1).B)
End If
End If
If j + 1 > .Width - DY - 1 And i + 1 > .Height - DX - 1
Then
If minred > CLng(.GetPixel(j + 1, i + 1).R) Then
minred = Red
End If
If mingreen > CLng(.GetPixel(j + 1, i + 1).G) Then
mingreen = Green
End If
If minblue > CLng(.GetPixel(j + 1, i + 1).B) Then
minblue = Blue
End If
Else
If minred > CLng(.GetPixel(j + 1, i + 1).R) Then
minred = CLng(.GetPixel(j + 1, i + 1).R)
End If
If mingreen > CLng(.GetPixel(j + 1, i + 1).G) Then
mingreen = CLng(.GetPixel(j + 1, i + 1).G)
End If
If minblue > CLng(.GetPixel(j + 1, i + 1).B) Then
minblue = CLng(.GetPixel(j + 1, i + 1).B)
End If
End If
tempRed(i, j) = minred
tempGreen(i, j) = mingreen
tempBlue(i, j) = minblue
Next
Next
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
Red = tempRed(i, j)
Green = tempGreen(i, j)
Blue = tempBlue(i, j)
[Link](j, i, [Link](Red, Green, Blue))
Next
If i Mod 10 = 0 Then
[Link]()
[Link] = Int(100 * i / ([Link] -
2)).ToString & "%"
[Link] = Int(100 * i /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses MIN"
End Sub