0% found this document useful (0 votes)
2 views57 pages

Source Code Program Citra

The document is a Visual Basic code for a form that processes images with various functionalities such as opening, saving, and applying filters like grayscale, binary, brightness, contrast, and negative effects. It includes methods for handling user interactions through menu items and displays progress during image processing. The code ensures that an image is selected before processing and provides feedback to the user through message boxes and progress bars.

Uploaded by

johanespurba45
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views57 pages

Source Code Program Citra

The document is a Visual Basic code for a form that processes images with various functionalities such as opening, saving, and applying filters like grayscale, binary, brightness, contrast, and negative effects. It includes methods for handling user interactions through menu items and displays progress during image processing. The code ensures that an image is selected before processing and provides feedback to the user through message boxes and progress bars.

Uploaded by

johanespurba45
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Public Class FormPengolahanCitra

Dim bmap As Bitmap


Dim PicAda As Boolean

Private Sub OpenToolStripMenuItem_Click(ByVal sender As [Link],


ByVal e As [Link]) Handles [Link]
[Link] = "Images|*.GIF;*.TIF;*.JPG;*.BMP"
[Link]()
If [Link] = "" Then Exit Sub
PicAda = True
[Link] = [Link]([Link])
[Link] = [Link] * [Link] /
[Link]
End Sub

Private Sub SaveToolStripMenuItem_Click(ByVal sender As [Link],


ByVal e As [Link]) Handles [Link]
[Link] = "BMP Files|*.BMP|JPEG Files|*.JPEG|JPG
Files|*.JPG|PNG Files|*.PNG"
[Link] = "Simpan Gambar?"
Dim result As DialogResult = [Link]
If result = [Link] Or result =
[Link] Then
[Link]([Link])
MsgBox("Gambar Telah Disimpan!")
[Link] = Nothing
End If
End Sub

Private Sub GreyScaleToolStripMenuItem_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 Integer, Green As Integer, Blue As Integer, Grey As
Integer
Dim X, Y As Integer
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Red = CInt(.GetPixel(Y, X).R)
Green = CInt(.GetPixel(Y, X).G)
Blue = CInt(.GetPixel(Y, X).B)
Grey = (Red + Green + Blue) / 3
If (Grey < 128) Then
Red = 0
Green = 0
Blue = 0
Else
Red = 255
Blue = 255
Green = 255
End If
[Link](Y, X, [Link](Red, Green, Blue))
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Proses Grey Scale : " & Int(100 * X
/ ([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses Grey Scale berhasil"
End Sub

Private Sub ExitToolStripMenuItem_Click(ByVal sender As [Link],


ByVal e As [Link]) Handles [Link]
[Link]()
End Sub

Private Sub BinerToolStripMenuItem_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
Dim DY As Integer
Dim Red, Green, Blue, Grey As Integer
Dim X, Y As Integer
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Red = CInt(.GetPixel(Y, X).R)
Green = CInt(.GetPixel(Y, X).G)
Blue = CInt(.GetPixel(Y, X).B)
Grey = (Red + Green + Blue) / 3
Dim clr As Color = [Link](Y, X)
If (Grey < 128) Then
Red = 0
Green = 0
Blue = 0
Else
Red = 255
Blue = 255
Green = 255
End If
[Link](Y, X, [Link](Red, Green, Blue))
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Proses Biner : " & Int(100 * X /
([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses Biner berhasil"
End Sub

Private Sub MBitToolStripMenuItem_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 Integer, Green As Integer, Blue As Integer, Grey As
Integer
Dim X, Y As Integer
Dim m As Integer = 2
Dim Xth As Double
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Red = CInt(.GetPixel(Y, X).R)
Green = CInt(.GetPixel(Y, X).G)
Blue = CInt(.GetPixel(Y, X).B)
Grey = (Red + Green + Blue) / 3
Xth = (2 ^ m) * Int(Grey / 2 ^ m)
If (Xth > 256) Then
Red = 255
Green = 255
Blue = 255
Else
Red = Xth
Green = Xth
Blue = Xth
End If
[Link](Y, X, [Link](Red, Green, Blue))
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Proses M Bit : " & Int(100 * X /
([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses M Bit berhasil"
End Sub

Private Sub BrigthnessToolStripMenuItem_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 Integer, Green As Integer, Blue As Integer
Dim X, Y As Integer
Dim tb As Integer
tb = 75
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Red = CInt(.GetPixel(Y, X).R)
Green = CInt(.GetPixel(Y, X).G)
Blue = CInt(.GetPixel(Y, X).B)
Red = Red + tb
Green = Green + tb
Blue = Blue + tb
If (Red > 255) Then
Red = 255
End If
If (Blue > 255) Then
Blue = 255
End If
If (Green > 255) Then
Green = 255
End If
[Link](Y, X, [Link](Red, Green, Blue))
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Brightness Scale : " & Int(100 * X /
([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses Brightness berhasil"
End Sub

Private Sub ContrastToolStripMenuItem_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, Green, Blue As Integer
Dim X, Y As Integer
Dim tc As Integer
tc = 5
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Red = CInt(.GetPixel(Y, X).R)
Green = CInt(.GetPixel(Y, X).G)
Blue = CInt(.GetPixel(Y, X).B)
Red = Red * tc
Blue = Blue * tc
Green = Green * tc
If (Red > 255) Then
Red = 255
End If
If (Blue > 255) Then
Blue = 255
End If
If (Green > 255) Then
Green = 255
End If
[Link](Y, X, [Link](Red, Green, Blue))
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Proses contrast : " & Int(100 * X /
([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses contrast berhasil"
End Sub

Private Sub InversiToolStripMenuItem_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
Dim DY As Integer
Dim X, Y As Integer
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Dim clr As Color = [Link](Y, X)
clr = [Link](255, 255 - clr.R, 255 - clr.G, 255
- clr.B)
[Link](Y, X, clr)
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Proses Inversi : " & Int(100 * X /
([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses Inversi berhasil"
End Sub

Private Sub NegativeImageToolStripMenuItem_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 L As Integer = 100

Dim Red As Integer, Green As Integer, Blue As Integer


Dim X, Y As Integer
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Red = CInt(.GetPixel(Y, X).R)
Green = CInt(.GetPixel(Y, X).G)
Blue = CInt(.GetPixel(Y, X).B)
Red = L - Red
Blue = L - Blue
Green = L - Green
If (Red > 255) Then
Red = 255
ElseIf (Red < 0) Then
Red = 0
End If
If (Blue > 255) Then
Blue = 255
ElseIf (Blue < 0) Then
Blue = 0
End If
If (Green > 255) Then
Green = 255
ElseIf (Green < 0) Then
Green = 0
End If
[Link](Y, X, [Link](Red, Green, Blue))
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Proses Negative Image : " & Int(100
* X / ([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses Negative Image berhasil"
End Sub

Private Sub LogaritmikToolStripMenuItem1_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 Integer, Green As Integer, Blue As Integer
Dim X, Y As Integer
Dim C As Integer = 36
Dim L As Integer = 1.1
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Red = CInt(.GetPixel(Y, X).R)
Green = CInt(.GetPixel(Y, X).G)
Blue = CInt(.GetPixel(Y, X).B)
Red = C * [Link](Red + 1)
Green = C * [Link](Green + 1)
Blue = C * [Link](Blue + 1)
If (Red > 255) Then
Red = 255
ElseIf (Red < 0) Then
Red = 0
End If
If (Blue > 255) Then
Blue = 255
ElseIf (Blue < 0) Then
Blue = 0
End If
If (Green > 255) Then
Green = 255
ElseIf (Green < 0) Then
Green = 0
End If
[Link](Y, X, [Link](Red, Green, Blue))
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Proses Logaritmik : " & Int(100 * X
/ ([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses Logaritmik berhasil"
End Sub

Private Sub InversLogaritmikToolStripMenuItem_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 Integer, Green As Integer, Blue As Integer
Dim R, G, B As Integer
Dim X, Y As Integer
Dim C As Integer = 36
Dim L As Integer = 120
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Red = CInt(.GetPixel(Y, X).R)
Green = CInt(.GetPixel(Y, X).G)
Blue = CInt(.GetPixel(Y, X).B)
R = (L - Red + 1)
B = (L - Blue + 1)
G = (L - Green + 1)
If (R <= 0) Then
Red = 0
Else
Red = C * [Link](R)
End If
If (G <= 0) Then
Green = 0
Else
Green = C * [Link](G)
End If
If (B <= 0) Then
Blue = 0
Else
Blue = C * [Link](B)
End If
If (Red > 255) Then
Red = 255
ElseIf (Red < 0) Then
Red = 0
End If
If (Blue > 255) Then
Blue = 255
ElseIf (Blue < 0) Then
Blue = 0
End If
If (Green > 255) Then
Green = 255
ElseIf (Green < 0) Then
Green = 0
End If
[Link](Y, X, [Link](Red, Green, Blue))
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Proses Logaritmik : " & Int(100 * X
/ ([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses Logaritmik berhasil"
End Sub

Private Sub PowerToolStripMenuItem_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 Integer, Green As Integer, Blue As Integer, Grey As
Integer
Dim X, Y As Integer
Dim C As Integer = 1.5
Dim z As Integer = 1.1
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Red = CInt(.GetPixel(Y, X).R)
Green = CInt(.GetPixel(Y, X).G)
Blue = CInt(.GetPixel(Y, X).B)
Grey = (Red + Green + Blue) / 3
Red = C * Red ^ z
Green = C * Green ^ z
Blue = C * Blue ^ z
If (Red > 255) Then
Red = 255
ElseIf (Red < 0) Then
Red = 0
End If
If (Blue > 255) Then
Blue = 255
ElseIf (Blue < 0) Then
Blue = 0
End If
If (Green > 255) Then
Green = 255
ElseIf (Green < 0) Then
Green = 0
End If
[Link](Y, X, [Link](Red, Green, Blue))
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Proses Power of Law n Power : " &
Int(100 * X / ([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses Power of Law n Power berhasil"
End Sub
Private Sub RootPowerToolStripMenuItem_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])
Dim tempbmp As New Bitmap([Link])
Dim DX As Integer = 1
Dim DY As Integer = 1
Dim Red As Integer, Green As Integer, Blue As Integer, Grey As
Integer
Dim X, Y As Integer
Dim C As Integer = 1.5
Dim z As Integer = 1.1
[Link] = [Link]
[Link]()
With tempbmp
For X = DX To .Height - DX - 1
For Y = DY To .Width - DY - 1
Red = CInt(.GetPixel(Y, X).R)
Green = CInt(.GetPixel(Y, X).G)
Blue = CInt(.GetPixel(Y, X).B)
Grey = (Red + Green + Blue) / 3
Red = C * Red ^ (1 / z)
Green = C * Green ^ (1 / z)
Blue = C * Blue ^ (1 / z)
If (Red > 255) Then
Red = 255
ElseIf (Red < 0) Then
Red = 0
End If
If (Blue > 255) Then
Blue = 255
ElseIf (Blue < 0) Then
Blue = 0
End If
If (Green > 255) Then
Green = 255
ElseIf (Green < 0) Then
Green = 0
End If
[Link](Y, X, [Link](Red, Green, Blue))
Next
If X Mod 10 = 0 Then
[Link]()
[Link] = "Progres Proses Power of Law n root Power : "
& Int(100 * X / ([Link] - 2)).ToString & "%"
[Link] = Int(100 * X /
([Link] - 2))
[Link]()
End If
Next
End With
[Link]()
[Link]()
[Link] = "Pengolahan Citra : Proses Power of Law n root Power
berhasil"
End Sub

Private Sub FilterSmoothingToolStripMenuItem_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
Dim MF(2, 2) As Double
MF(0, 0) = 1 / 9
MF(0, 1) = 1 / 9
MF(0, 2) = 1 / 9
MF(1, 0) = 1 / 9
MF(1, 1) = 1 / 9
MF(1, 2) = 1 / 9
MF(2, 0) = 1 / 9
MF(2, 1) = 1 / 9
MF(2, 2) = 1 / 9
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 Integer, Green As Integer, Blue As Integer
Dim i As Integer, j As Integer
Dim k As Integer, l As Integer
[Link] = [Link]
[Link]()

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 Smoothing Image berhasil"
End Sub

Private Sub WeightedSmoothingToolStripMenuItem_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
Dim MF(2, 2) As Double
MF(0, 0) = 1 / 16
MF(0, 1) = 2 / 16
MF(0, 2) = 1 / 16
MF(1, 0) = 2 / 16
MF(1, 1) = 4 / 16
MF(1, 2) = 2 / 16
MF(2, 0) = 1 / 16
MF(2, 1) = 2 / 16
MF(2, 2) = 1 / 16
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 Integer, Green As Integer, Blue As Integer
Dim i As Integer, j As Integer
Dim k As Integer, l As Integer
[Link] = [Link]
[Link]()

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 Weight Smoothing Image berhasil"
End Sub

Private Sub VertikalToolStripMenuItem_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
Dim MF(2, 2) As Double
MF(0, 0) = -1
MF(0, 1) = 0
MF(0, 2) = 1
MF(1, 0) = -1
MF(1, 1) = 0
MF(1, 2) = 1
MF(2, 0) = -1
MF(2, 1) = 0
MF(2, 2) = 1

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 Integer, Green As Integer, Blue As Integer
Dim i As Integer, j As Integer
Dim k As Integer, l As Integer
[Link] = [Link]
[Link]()

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

Private Sub HorizontalToolStripMenuItem_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
Dim MF(2, 2) As Double
MF(0, 0) = -1
MF(0, 1) = -1
MF(0, 2) = -1
MF(1, 0) = 0
MF(1, 1) = 0
MF(1, 2) = 0
MF(2, 0) = 1
MF(2, 1) = 1
MF(2, 2) = 1
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 Integer, Green As Integer, Blue As Integer
Dim i As Integer, j As Integer
Dim k As Integer, l As Integer
[Link] = [Link]
[Link]()

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 Horizontal Image berhasil"
End Sub

Private Sub ToolStripMenuItem2_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
Dim MF(2, 2) As Double
MF(0, 0) = -2
MF(0, 1) = 1
MF(0, 2) = -2
MF(1, 0) = 1
MF(1, 1) = 4
MF(1, 2) = 1
MF(2, 0) = -2
MF(2, 1) = 1
MF(2, 2) = -2
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 Integer, Green As Integer, Blue As Integer
Dim i As Integer, j As Integer
Dim k As Integer, l As Integer
[Link] = [Link]
[Link]()

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 1 Image berhasil"
End Sub

Private Sub ToolStripMenuItem3_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
Dim MF(2, 2) As Double
MF(0, 0) = -1
MF(0, 1) = -1
MF(0, 2) = -1
MF(1, 0) = -1
MF(1, 1) = 8
MF(1, 2) = -1
MF(2, 0) = -1
MF(2, 1) = -1
MF(2, 2) = -1
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 Integer, Green As Integer, Blue As Integer
Dim i As Integer, j As Integer
Dim k As Integer, l As Integer
[Link] = [Link]
[Link]()

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 2 Image berhasil"
End Sub

Private Sub ToolStripMenuItem4_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
Dim MF(2, 2) As Double
MF(0, 0) = 0
MF(0, 1) = -1
MF(0, 2) = 0
MF(1, 0) = -1
MF(1, 1) = 4
MF(1, 2) = -1
MF(2, 0) = 0
MF(2, 1) = -1
MF(2, 2) = 0
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 Integer, Green As Integer, Blue As Integer
Dim i As Integer, j As Integer
Dim k As Integer, l As Integer
[Link] = [Link]
[Link]()

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

Private Sub VertikalToolStripMenuItem1_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
Dim MF(2, 2) As Double
MF(0, 0) = -1
MF(0, 1) = 0
MF(0, 2) = 1
MF(1, 0) = -2
MF(1, 1) = 0
MF(1, 2) = 2
MF(2, 0) = -1
MF(2, 1) = 0
MF(2, 2) = 1
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 Integer, Green As Integer, Blue As Integer
Dim i As Integer, j As Integer
Dim k As Integer, l As Integer
[Link] = [Link]
[Link]()

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

Private Sub HorizontalToolStripMenuItem1_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
Dim MF(2, 2) As Double
MF(0, 0) = -1
MF(0, 1) = -2
MF(0, 2) = -1
MF(1, 0) = 0
MF(1, 1) = 0
MF(1, 2) = 0
MF(2, 0) = 1
MF(2, 1) = 2
MF(2, 2) = 1
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 Integer, Green As Integer, Blue As Integer
Dim i As Integer, j As Integer
Dim k As Integer, l As Integer
[Link] = [Link]
[Link]()

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

Private Sub MaxToolStripMenuItem_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
Dim MF(2, 2) As Double
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 maxred, maxgreen, maxblue As Int64
Red = CLng(.GetPixel(j, i).R)
maxred = Red
Green = CLng(.GetPixel(j, i).G)
maxgreen = Green
Blue = CLng(.GetPixel(j, i).B)
maxblue = Blue
If j - 1 < 1 And i - 1 < 1 Then
If maxred < CLng(.GetPixel(j - 1, i - 1).R) Then
maxred = Red
End If
If maxgreen < CLng(.GetPixel(j - 1, i - 1).G) Then
maxgreen = Green
End If
If maxblue < CLng(.GetPixel(j - 1, i - 1).B) Then
maxblue = Blue
End If
Else
If maxred < CLng(.GetPixel(j - 1, i - 1).R) Then
maxred = CLng(.GetPixel(j - 1, i - 1).R)
End If
If maxgreen < CLng(.GetPixel(j - 1, i - 1).G) Then
maxgreen = CLng(.GetPixel(j - 1, i - 1).G)
End If
If maxblue < CLng(.GetPixel(j - 1, i - 1).B) Then
maxblue = CLng(.GetPixel(j - 1, i - 1).B)
End If
End If
If i - 1 < 1 Then
If maxred < CLng(.GetPixel(j, i - 1).R) Then
maxred = Red
End If
If maxgreen < CLng(.GetPixel(j, i - 1).G) Then
maxgreen = Green
End If
If maxblue < CLng(.GetPixel(j, i - 1).B) Then
maxblue = Blue
End If
Else
If maxred < CLng(.GetPixel(j, i - 1).R) Then
maxred = CLng(.GetPixel(j, i - 1).R)
End If
If maxgreen < CLng(.GetPixel(j, i - 1).G) Then
maxgreen = CLng(.GetPixel(j, i - 1).G)
End If
If maxblue < CLng(.GetPixel(j, i - 1).B) Then
maxblue = CLng(.GetPixel(j, i - 1).B)
End If
End If
If j + 1 > .Width - DY - 1 And i - 1 > 1 Then
If maxred < CLng(.GetPixel(j + 1, i - 1).R) Then
maxred = Red
End If
If maxgreen < CLng(.GetPixel(j + 1, i - 1).G) Then
maxgreen = Green
End If
If maxblue < CLng(.GetPixel(j + 1, i - 1).B) Then
maxblue = Blue
End If
Else
If maxred < CLng(.GetPixel(j + 1, i - 1).R) Then
maxred = CLng(.GetPixel(j + 1, i - 1).R)
End If
If maxgreen < CLng(.GetPixel(j + 1, i - 1).G) Then
maxgreen = CLng(.GetPixel(j + 1, i - 1).G)
End If
If maxblue < CLng(.GetPixel(j + 1, i - 1).B) Then
maxblue = CLng(.GetPixel(j + 1, i - 1).B)
End If
End If
If j - 1 < 1 Then
If maxred < CLng(.GetPixel(j - 1, i).R) Then
maxred = Red
End If
If maxgreen < CLng(.GetPixel(j - 1, i).G) Then
maxgreen = Green
End If
If maxblue < CLng(.GetPixel(j - 1, i).B) Then
maxblue = Blue
End If
Else
If maxred < CLng(.GetPixel(j - 1, i).R) Then
maxred = CLng(.GetPixel(j - 1, i).R)
End If
If maxgreen < CLng(.GetPixel(j - 1, i).G) Then
maxgreen = CLng(.GetPixel(j - 1, i).G)
End If
If maxblue < CLng(.GetPixel(j - 1, i).B) Then
maxblue = CLng(.GetPixel(j - 1, i).B)
End If
End If
If j + 1 > .Width - DY - 1 Then
If maxred < CLng(.GetPixel(j + 1, i).R) Then
maxred = CLng(.GetPixel(j, i).R)
End If
If maxgreen < CLng(.GetPixel(j + 1, i).G) Then
maxgreen = Green
End If
If maxblue < CLng(.GetPixel(j + 1, i).B) Then
maxblue = Blue
End If
Else
If maxred < CLng(.GetPixel(j + 1, i).R) Then
maxred = CLng(.GetPixel(j + 1, i).R)
End If
If maxgreen < CLng(.GetPixel(j + 1, i).G) Then
maxgreen = CLng(.GetPixel(j + 1, i).G)
End If
If maxblue < CLng(.GetPixel(j + 1, i).B) Then
maxblue = CLng(.GetPixel(j + 1, i).B)
End If
End If
If j - 1 < 1 And i + 1 > .Height - DX - 1 Then
If maxred < CLng(.GetPixel(j - 1, i + 1).R) Then
maxred = Red
End If
If maxgreen < CLng(.GetPixel(j - 1, i + 1).G) Then
maxgreen = Green
End If
If maxblue < CLng(.GetPixel(j - 1, i + 1).B) Then
maxblue = Blue
End If
Else
If maxred < CLng(.GetPixel(j - 1, i + 1).R) Then
maxred = CLng(.GetPixel(j - 1, i + 1).R)
End If
If maxgreen < CLng(.GetPixel(j - 1, i + 1).G) Then
maxgreen = CLng(.GetPixel(j - 1, i + 1).G)
End If
If maxblue < CLng(.GetPixel(j - 1, i + 1).B) Then
maxblue = CLng(.GetPixel(j - 1, i + 1).B)
End If
End If
If i + 1 > .Height - DX - 1 Then
If maxred < CLng(.GetPixel(j, i + 1).R) Then
maxred = Red
End If
If maxgreen < CInt(.GetPixel(j, i + 1).G) Then
maxgreen = Green
End If
If maxblue < CLng(.GetPixel(j, i + 1).B) Then
maxblue = Blue
End If
Else
If maxred < CLng(.GetPixel(j, i + 1).R) Then
maxred = CLng(.GetPixel(j, i + 1).R)
End If
If maxgreen < CLng(.GetPixel(j, i + 1).G) Then
maxgreen = CLng(.GetPixel(j, i + 1).G)
End If
If maxblue < CLng(.GetPixel(j, i + 1).B) Then
maxblue = CLng(.GetPixel(j, i + 1).B)
End If
End If
If j + 1 > .Width - DY - 1 And i + 1 > .Height - DX - 1
Then
If maxred < CLng(.GetPixel(j + 1, i + 1).R) Then
maxred = Red
End If
If maxgreen < CLng(.GetPixel(j + 1, i + 1).G) Then
maxgreen = Blue
End If
If maxblue < CLng(.GetPixel(j + 1, i + 1).B) Then
maxblue = Blue
End If
Else
If maxred < CLng(.GetPixel(j + 1, i + 1).R) Then
maxred = CLng(.GetPixel(j + 1, i + 1).R)
End If
If maxgreen < CLng(.GetPixel(j + 1, i + 1).G) Then
maxgreen = CLng(.GetPixel(j + 1, i + 1).G)
End If
If maxblue < CLng(.GetPixel(j + 1, i + 1).B) Then
maxblue = CLng(.GetPixel(j + 1, i + 1).B)
End If
End If
tempRed(i, j) = maxred
tempGreen(i, j) = maxgreen
tempBlue(i, j) = maxblue
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 MAX"
End Sub

Private Sub MeanToolStripMenuItem_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
Dim MF(2, 2) As Double
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 midred, midgreen, midblue As Int64
Red = CLng(.GetPixel(j, i).R)
midred = Red
Green = CLng(.GetPixel(j, i).G)
midgreen = Green
Blue = CLng(.GetPixel(j, i).B)
midblue = Blue
If j - 1 < 1 And i - 1 < 1 Then
midred += Red
midgreen += Green
midblue += Blue
Else
midred += CLng(.GetPixel(j - 1, i - 1).R)
midgreen += CLng(.GetPixel(j - 1, i - 1).G)
midblue += CLng(.GetPixel(j - 1, i - 1).B)
End If
If i - 1 < 1 Then
midred += Red
midgreen += Green
midblue += Blue
Else
midred += CLng(.GetPixel(j, i - 1).R)
midgreen += CLng(.GetPixel(j, i - 1).G)
midblue += CLng(.GetPixel(j, i - 1).B)
End If
If j + 1 > .Width - DY - 1 And i - 1 > 1 Then
midred += Red
midgreen += Green
midblue += Blue
Else
midred += CLng(.GetPixel(j + 1, i - 1).R)
midgreen += CLng(.GetPixel(j + 1, i - 1).G)
midblue += CLng(.GetPixel(j + 1, i - 1).B)
End If
If j - 1 < 1 Then
midred += Red
midgreen += Green
midblue += Blue
Else
midred += CLng(.GetPixel(j - 1, i).R)
midgreen += CLng(.GetPixel(j - 1, i).G)
midblue += CLng(.GetPixel(j - 1, i).B)
End If
If j + 1 > .Width - DY - 1 Then
midred += Red
midgreen += Green
midblue += Blue
Else
midred += CLng(.GetPixel(j + 1, i).R)
midgreen += CLng(.GetPixel(j + 1, i).G)
midblue += CLng(.GetPixel(j + 1, i).B)
End If
If j - 1 < 1 And i + 1 > .Height - DX - 1 Then
midred += Red
midgreen += Green
midblue += Blue
Else
midred += CLng(.GetPixel(j - 1, i + 1).R)
midgreen += CLng(.GetPixel(j - 1, i + 1).G)
midblue += CLng(.GetPixel(j - 1, i + 1).B)
End If
If i + 1 > .Height - DX - 1 Then
midred += Red
midgreen += Green
midblue += Blue
Else
midred += CLng(.GetPixel(j, i + 1).R)
midgreen += CLng(.GetPixel(j, i + 1).G)
midblue += CLng(.GetPixel(j, i + 1).B)
End If
If j + 1 > .Width - DY - 1 And i + 1 > .Height - DX - 1
Then
midred += Red
midgreen += Green
midblue += Blue
Else
midred += CLng(.GetPixel(j + 1, i + 1).R)
midgreen += CLng(.GetPixel(j + 1, i + 1).G)
midblue += CLng(.GetPixel(j + 1, i + 1).B)
End If
midred = midred / 9
midgreen = midgreen / 9
midblue = midblue / 9
tempRed(i, j) = midred
tempGreen(i, j) = midgreen
tempBlue(i, j) = midblue
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 MEAN"
End Sub

Private Sub MedianToolStripMenuItem_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(0 To 9) As Int64, Green(0 To 9) As Int64, Blue(0 To 9) 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
Red(1) = CLng(.GetPixel(j, i).R)
Green(1) = CLng(.GetPixel(j, i).G)
Blue(1) = CLng(.GetPixel(j, i).B)
If j - 1 < 1 And i - 1 < 1 Then
Red(2) = Red(1)
Green(2) = Green(1)
Blue(2) = Blue(1)
Else
Red(2) = CLng(.GetPixel(j - 1, i - 1).R)
Green(2) = CLng(.GetPixel(j - 1, i - 1).G)
Blue(2) = CLng(.GetPixel(j - 1, i - 1).B)
End If
If i - 1 < 1 Then
Red(3) = Red(1)
Green(3) = Green(1)
Blue(3) = Blue(1)
Else
Red(3) = CLng(.GetPixel(j, i - 1).R)
Green(3) = CLng(.GetPixel(j, i - 1).G)
Blue(3) = CLng(.GetPixel(j, i - 1).B)
End If
If j + 1 > .Width - DY - 1 And i - 1 > 1 Then
Red(4) = Red(1)
Green(4) = Green(1)
Blue(4) = Blue(1)
Else
Red(4) = CLng(.GetPixel(j + 1, i - 1).R)
Green(4) = CLng(.GetPixel(j + 1, i - 1).G)
Blue(4) = CLng(.GetPixel(j + 1, i - 1).B)
End If
If j - 1 < 1 Then
Red(5) = Red(1)
Green(5) = Green(1)
Blue(5) = Blue(1)
Else
Red(5) = CLng(.GetPixel(j - 1, i).R)
Green(5) = CLng(.GetPixel(j - 1, i).G)
Blue(5) = CLng(.GetPixel(j - 1, i).B)
End If
If j + 1 > .Width - DY - 1 Then
Red(6) = Red(1)
Green(6) = Green(1)
Blue(6) = Blue(1)
Else
Red(6) = CLng(.GetPixel(j + 1, i).R)
Green(6) = CLng(.GetPixel(j + 1, i).G)
Blue(6) = CLng(.GetPixel(j + 1, i).B)
End If
If j - 1 < 1 And i + 1 > .Height - DX - 1 Then
Red(7) = Red(1)
Green(7) = Green(1)
Blue(7) = Blue(1)
Else
Red(7) = CLng(.GetPixel(j - 1, i + 1).R)
Green(7) = CLng(.GetPixel(j - 1, i + 1).G)
Blue(7) = CLng(.GetPixel(j - 1, i + 1).B)
End If
If i + 1 > .Height - DX - 1 Then
Red(8) = Red(1)
Green(8) = Green(1)
Blue(8) = Blue(1)
Else
Red(8) = CLng(.GetPixel(j, i + 1).R)
Green(8) = CLng(.GetPixel(j, i + 1).G)
Blue(8) = CLng(.GetPixel(j, i + 1).B)
End If
If j + 1 > .Width - DY - 1 And i + 1 > .Height - DX - 1
Then
Red(9) = Red(1)
Green(9) = Green(1)
Blue(9) = Blue(1)
Else
Red(9) = CLng(.GetPixel(j + 1, i + 1).R)
Green(9) = CLng(.GetPixel(j + 1, i + 1).G)
Blue(9) = CLng(.GetPixel(j + 1, i + 1).B)
End If
Dim c, n, tempredd As Integer
For c = 1 To 8
For n = c + 1 To 9
If Red(c) > Red(n) Then
tempredd = Red(c)
Red(c) = Red(n)
Red(n) = tempredd
End If
If Green(c) > Green(n) Then
tempredd = Green(c)
Green(c) = Green(n)
Green(n) = tempredd
End If
If Blue(c) > Blue(n) Then
tempredd = Blue(c)
Blue(c) = Blue(n)
Blue(n) = tempredd
End If
Next
Next
tempRed(i, j) = Red(5)
tempGreen(i, j) = Green(5)
tempBlue(i, j) = Blue(5)
Next
Next
For i = DX To .Height - DX - 1
For j = DY To .Width - DY - 1
Dim redd, greenn, bluee As Int64
redd = tempRed(i, j)
greenn = tempGreen(i, j)
bluee = tempBlue(i, j)
[Link](j, i, [Link](redd, greenn,
bluee))
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 MEDIAN"
End Sub

Private Sub Rotasi(ByVal s As RotateFlipType)


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
[Link](s)
[Link] = bmap
End Sub

Private Sub RotasiLeftToolStripMenuItem_Click(ByVal sender As


[Link], ByVal e As [Link]) Handles
[Link]
Rotasi(RotateFlipType.Rotate270FlipNone)
End Sub

Private Sub RotateRightToolStripMenuItem_Click(ByVal sender As


[Link], ByVal e As [Link]) Handles
[Link]
Rotasi(RotateFlipType.Rotate90FlipNone)
End Sub

Private Sub ToolStripMenuItem5_Click(ByVal sender As [Link],


ByVal e As [Link]) Handles [Link]
Rotasi(RotateFlipType.Rotate90FlipNone)
End Sub

Private Sub ToolStripMenuItem6_Click(ByVal sender As [Link],


ByVal e As [Link]) Handles [Link]
Rotasi(RotateFlipType.Rotate180FlipNone)
End Sub

Private Sub ToolStripMenuItem7_Click(ByVal sender As [Link],


ByVal e As [Link]) Handles [Link]
Rotasi(RotateFlipType.Rotate270FlipNone)
End Sub

Private Sub AboutToolStripMenuItem_Click(ByVal sender As [Link],


ByVal e As [Link]) Handles [Link]
MsgBox("Created By : Nama Anda " & vbCrLf & "Kelas : Kelas Anda" &
vbCrLf & "NPM : NPM Anda")
End Sub
End Class

You might also like