Didalam Pengolahan Citra ada bermacam macam jenis seperti
pada contoh dibawah ini :
1.DEFAULT GAMBAR
2. GRAYSCALE
3. NEGATIF
4. BRIGTHNESS
5. BINER
6. SMOOTHING
7. CONTRAST
8. ROTATE 180
9. ROTATE 90
10. INVERSI
Berikut Listing Program dan Tampilannya :
Public Class Form1
Dim gambar As Bitmap
Private Sub Form1_Load(ByVal
sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Pic2.Image = Pic1.Image
End Sub
Private Sub OpenCitraToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
OpenCitraToolStripMenuItem.Click
OFD.Filter = "BMP|*.bmp|JPG|*.Jpg"
OFD.ShowDialog()
If
OFD.FileName = "" Then Exit Sub
Pic1.Image =
Image.FromFile(OFD.FileName)
gambar = New
Bitmap(Pic1.Image)
End Sub
Private Sub SaveCitraToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
SaveCitraToolStripMenuItem.Click
SFD.Filter = "JPG|*.Jpg|BMP|*.bmp"
SFD.ShowDialog()
If
SFD.FileName = "" Then Exit Sub
If
SFD.FilterIndex = 1 Then
gambar.Save(SFD.FileName,
System.Drawing.Imaging.ImageFormat.Jpeg)
End If
If
SFD.FilterIndex = 2 Then
gambar.Save(SFD.FileName,
System.Drawing.Imaging.ImageFormat.Bmp)
End If
End Sub
Private Sub DefaultGambarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
DefaultGambarToolStripMenuItem.Click
gambar = New
Bitmap(Pic1.Image)
End Sub
Private Sub KeluarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
KeluarToolStripMenuItem.Click
End
End Sub
Tampilannya :
2. GRAYSCALE
Private Sub GrayscaleToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
GrayscaleToolStripMenuItem.Click
Dim Pb,
Pc As Integer
Dim Rt,
vM, vH, vB As Double
With
gambar
For
Pb = 0 To .Height - 1
For
Pc = 0 To .Width - 1
vM = .GetPixel(Pc, Pb).R
vH = .GetPixel(Pc, Pb).G
vB = .GetPixel(Pc, Pb).B
Rt = (vM + vH + vB) / 3
.SetPixel(Pc, Pb,
Color.FromArgb(Rt, Rt, Rt))
Next
Pic2.Image = gambar
Pic2.Refresh()
Next
End With
End Sub
Tampilannya :
3. NEGATIF
Private Sub NegatifToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
NegatifToolStripMenuItem.Click
Dim Pb,
Pc As Integer
Dim vM,
vH, vB As Double
With
gambar
For
Pb = 0 To .Height - 1
For
Pc = 0 To .Width - 1
vM = 255 - .GetPixel(Pc,
Pb).R
vH = 255 - .GetPixel(Pc,
Pb).G
vB = 255 - .GetPixel(Pc,
Pb).B
If vM <=
0 Then vM = 0
If
vB <= 0 Then vB = 0
If
vH <= 0 Then vH = 0
.SetPixel(Pc, Pb,
Color.FromArgb(vM, vH, vB))
Next
Pic2.Image = gambar
Pic2.Refresh()
Next
End With
End Sub
Tampilannya :
4. BRIGTHNESS
Private Sub BrigthnessToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
BrigthnessToolStripMenuItem.Click
Dim pb,
pc As Integer
Dim vM,
vH, vB As Double
With
gambar
For
pb = 0 To .Height - 1
For
pc = 0 To .Width - 1
vM = .GetPixel(pc, pb).R +
5
vH = .GetPixel(pc, pb).G +
5
vB = .GetPixel(pc, pb).B +
5
If
vM > 255 Then vM = 255
If
vB > 255 Then vB = 255
If
vH > 255 Then vH = 255
.SetPixel(pc, pb,
Color.FromArgb(vM, vH, vB))
Next
Pic2.Image = gambar
Pic2.Refresh()
Next
End With
End Sub
Tampilannya :
5. BINER
Private Sub BinerToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
BinerToolStripMenuItem.Click
Dim Pb,
Pc As Integer
Dim
rata, vM, vH, vB As Double
With
gambar
For
Pb = 0 To .Height - 1
For
Pc = 0 To .Width - 1
vM = .GetPixel(Pc, Pb).R
vH = .GetPixel(Pc, Pb).G
vB = .GetPixel(Pc, Pb).B
rata = (vM + vH + vB) / 3
If
(rata < 128) Then
vM = 0
vH = 0
vB = 0
Else
vM = 255
vH = 255
vB = 255
End
If
.SetPixel(Pc, Pb,
Color.FromArgb(vM, vH, vB))
Next
Pic2.Image = gambar
Pic2.Refresh()
Next
End With
End Sub
Tampilannya :
6. SMOOTHING
Private Sub SmooToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
SmooToolStripMenuItem.Click
Dim
MF(2, 2) As Double
'MaskFilter.Show()
'matriks
Filter
' 0 1 2
'0 a b c
'1 d e f
'2 g h i
'Filter
smoothing
MF(0, 0) = 1 / 9 'a
MF(0, 1) = 1 / 9 'b
MF(0, 2) = 1 / 9 'c
MF(1, 0) = 1 / 9 'd
MF(1, 1) = 1 / 9 'e
MF(1, 2) = 1 / 9 'f
MF(2, 0) = 1 / 9 'g
MF(2, 1) = 1 / 9 'h
MF(2, 2) = 1 / 9 'i
gambar = New
Bitmap(Pic1.Image)
Pic2.Image = gambar
Dim
tempbmp As New
Bitmap(Pic1.Image)
Dim DX As Integer = 1
Dim DY As Integer = 1
Dim Red
As Integer,
Green As Integer,
Blue As Integer
With
gambar
For
i = DX To .Height - DX - 1
For
j = DY To .Width - DY - 1
'proses
matriks filter
'point(j,i)*e
--> titik tengah
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)
'proses
titik tetangga
'point(j-1,i-1)*a-->
MF(0,0)--> titik kiri atas
If
j - 1 < 1 And i - 1 < 1 Then 'jika out of border
ambil nilai tengah/point(x,y)
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
'point(j,i-1)*b
--> MF(0,1) --> titik atas
If
i - 1 < 1 Then 'jika
out of border ambil nilai tengah/point(x,y)
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
'point(j+1,i-1)*c
--> MF(0,2) --> titik kanan atas
If
j + 1 > .Width - DY - 1 And i - 1 > 1 Then 'jika out of border
ambil nilai tengah/point(x,y)
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
'point(j-1,i)*d
--> MF(1,0) --> titik kiri
If
j - 1 < 1 Then 'jika
out of border ambil nilai tengah/point(x,y)
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
'point(j+1,i)*f
--> MF(1,2) --> titik kanan
If
j + 1 > .Width - DY - 1 Then 'jika out of border ambil nilai tengah/point(x,y)
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
'point(j-1,i+1)*g
--> MF(2,0) --> titik kiri bawah
If
j - 1 < 1 And i + 1 > .Height - DX - 1 Then 'jika out of border
ambil nilai tengah/point(x,y)
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
'point(j,i+1)*g
--> MF(2,1) --> titik bawah
If
i + 1 > .Height - DX - 1 Then 'jika out of border ambil nilai tengah/point(x,y)
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
'point(j+1,i+1)*h
--> MF(2,2) --> titik kanan bawah
If
j + 1 > .Width - DY - 1 And i + 1 >
.Height - DX - 1 Then 'jika
out of border ambil nilai tengah/point(x,y)
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
'normalisasi
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
'simpan
warna hasil smoothing ke point j,i
gambar.SetPixel(j, i,
Color.FromArgb(Red, Green, Blue))
Next
If
i Mod 10 = 0 Then
Pic1.Invalidate()
Me.Text
= Int(100 * i / (Pic1.Image.Height - 2)).ToString & "%"
Pic1.Refresh()
End
If
Next
End With
Pic1.Refresh()
Me.Text
= "Proses Smoothing Image berhasil"
End Sub
7. CONTRAST
Private Sub
ContrastToolStripMenuItem_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
ContrastToolStripMenuItem.Click
gambar = New
Bitmap(Pic1.Image)
Pic2.Image = gambar
Dim
tempbmp As New
Bitmap(Pic1.Image)
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
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 'konversi warna pada pixel Y,X ke grey
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
gambar.SetPixel(Y, X,
Color.FromArgb(Red, Green, Blue))
Next
If
X Mod 10 = 0 Then
Pic1.Invalidate()
Pic2.Refresh()
End
If
Next
End With
End Sub
Tampilannya :
8. ROTATE 180
Private Sub Rotate180ToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
Rotate180ToolStripMenuItem.Click
Dim pb,
pc As Integer
Dim vM,
vH, vB As Double
Dim
gambar3 As Bitmap = New
Bitmap(Pic1.Image)
With
gambar
For
pb = .Height - 1 To 0 Step
-1
For
pc = .Width - 1 To 0 Step
-1
vM = .GetPixel(pc, pb).R
vH = .GetPixel(pc, pb).G
vB = .GetPixel(pc, pb).B
gambar3.SetPixel(.Width - 1
- pc, .Height - 1 - pb, Color.FromArgb(vM, vH, vB))
Next
Pic2.Image = gambar3
Pic2.Refresh()
Next
End With
End Sub
Tampilannya :
9. ROTATE 90
Private Sub Rotate90ToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
Rotate90ToolStripMenuItem.Click
Dim rgb
As Image
rgb = Pic2.Image
If rgb IsNot Nothing Then rgb.RotateFlip(RotateFlipType.Rotate90FlipXY)
Pic2.Image = rgb
End Sub
Tampilannya :
10. INVERSI
Private Sub InversiToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As
System.EventArgs) Handles
InversiToolStripMenuItem.Click
Dim
inVal As Object
inVal = InputBox("Berapa Bit ? ", "Inversi", "8")
If
inVal <> "" Then
gambar = New
Bitmap(Pic1.Image) 'Gambar asli dijadikan gambar
Bitmap
Pic2.Image = gambar
Dim
tempbmp As New
Bitmap(Pic1.Image) 'deklarasi gambar Bitmap dari
gambar asli untuk diproses
Dim
DX As Integer =
1
Dim
DY As Integer =
1
Dim
mBit, Red As Integer,
Green As Integer,
Blue As Integer,
Grey As Integer
Dim
X, Y As Integer
mBit = CInt(inVal)
With
tempbmp
For
X = DX To .Height - DX - 1
For
Y = DY To .Width - DY - 1
Red = CInt((Math.Pow(2,
mBit) - 1)) - CInt(.GetPixel(Y, X).R) 'ambil nilai warna merah (Red) pada pixel(Y,X)
Green = CInt((Math.Pow(2, mBit) - 1)) - CInt(.GetPixel(Y, X).G) 'ambil
nilai warna hijau (Green) pada pixel(Y,X)
Blue = CInt((Math.Pow(2, mBit) - 1)) - CInt(.GetPixel(Y, X).B) 'ambil
nilai warna biru (Blue) pada pixel(Y,X)
If (Red > 255) Then
Red = 255
Else
If Red < 0 Then
Red = 0
End If
End If
If Green > 255 Then
Green = 255
Else
If Green < 0 Then
Green = 0
End If
End If
If Blue > 255 Then
Blue = 255
Else
If Blue < 0 Then
Blue = 0
End If
End If
gambar.SetPixel(Y, X,
Color.FromArgb(Red, Green, Blue)) 'simpan warna baru
pada pixel(Y,X)
Next
If
X Mod 10 = 0 Then
Pic1.Invalidate()
Pic1.Refresh()
End
If
Next
End
With
Pic1.Refresh()
Me.Text
= "Pengolahan Citra : Proses Inversi Scale
berhasil"
End If
End Sub
End Class
Bonus Puas Menyambut Puasa
BalasHapusGratis Bonus Coin >> 1.000.000
|POKER | CEME | DOMINO99 | OMAHA | SUPER10|
Terima SEMUA BANK DI INDONESIA
BANK NASIONAL + BANK DAERAH |
OVO N GOPAY? Bisa!! Buruan
BBM : D8C0B757
WhastApp : 0812-2222-1680
Lnk : P0KERAYAM .ORG
Numpang Lewat yah min...
BalasHapusHanya Di OPPOPOKER
Bonus New Member....
Deposit 15.000 - 49.999 = Bonus nya 10.000
Deposit 50.000 - 99.999 = Bonus nya 15.000
Deposit 100.000 Ke atas = Bonus nya 20.000
HANYA DI KENARI POKER BANYAK BONUSNYA BOSSKU
BalasHapusBonus Welcome Untuk New Member:
- Bagi deposit Rp.10,000 - Rp.14,999 Bonus Rp.5.000
- Bagi deposit Rp.15,000 - Rp.24,999 Bonus Rp.10.000
- Bagi deposit Rp.25,000 - Rp.49,999 Bonus Rp.15.000
- Bagi deposit Rp.50,000 - Rp.99,999 Bonus Rp.20.000
- Bagi deposit Rp.100,000 ke atas Bonus Rp.25.000s
- Bonus next deposit 5% untuk deposit Rp.50.000
REAL PLAYER VS PLAYER !!!
Syarat Klaim bonus yaitu menghubungi CS kami di
WHATSAPP : +855966139323, +85585426330
BBM : KENARI00
LIVE CHAT : KENARIPOKER . COM
ALTERNATIVE LINK : KENARIPOKER . COM