Minggu, 30 Juni 2013

Pengolahan Citra Lanjutan || ViBi.Net

Ada beberapa tahap yang harus dilakukan dalam pembuatan program sederhana untuk pengolahan citra pada VB Net 2008.
Langkah –langkah nya adalah sebagai berikut :

Desain lah Form seperti dibawah ini :









Dan jangan lupa untuk menambahkan komponen menustrip (pada toolbox Menu & Toolbar),OpenFileDialog (pada toolbox Dialog) dan SaveFileDialog (pada toolbox Dialog)

OpenFileDialog  -> name dirubah jadi OFD

SaveFileDialog  -> name dirubah jadi SFD

Kemudian ketik listing programnya seperti di bawah ini :

Public Class Form1
Dim gambar As Bitmap

Private Sub OpenCitraToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenCitraTolStripMenuItem.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 SFD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveCitraToolStripMenuItem.Click OFD.Filter = "JPG|*.jpg|BMP|*.bmp"
SFD.ShowDialog()
If OFD.FileName = "" Then Exit Sub

If OFD.FilterIndex = 1 Then
gambar.Save(OFD.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
End If
If OFD.FilterIndex = 2 Then
gambar.Save(OFD.FileName, System.Drawing.Imaging.ImageFormat.Bmp)
End If
End Sub



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
Pic1.Image = gambar
Pic2.Refresh()
Next
End With
End Sub


Maka Hasilnya seperti di bawah ini...




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
Pic1.Image = gambar
Pic2.Refresh()
Next
End With
End Sub


Hasil Negatif...



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
Pic1.Image = gambar
Pic2.Refresh()
Next
End With

End Sub


Private Sub KeluarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KeluarToolStripMenuItem.Click
End
End Sub


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
vH = 0
vM = 0
vB = 0
Else
vM = 255
vH = 255
vB = 255
End If
.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
Next
Pic1.Image = gambar
Pic2.Refresh()
Next
End With
End Sub


Hasil Biner...



Private Sub DefaultGambarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DefaultGambarToolStripMenuItem.Click
Pic1.Image = Pic2.Image
End Sub


Private Sub ToolStripMenuItem180_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem180.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
Pic1.Image = gambar3
Pic2.Refresh()
Next
End With
gambar3 = gambar3
End Sub


Hasil 180 Derajat...



Private Sub ToolStripMenuItem90_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem90.Click
Dim gambar3 = New Bitmap(Pic1.Image)
gambar3 = New Bitmap(Pic1.Image)
Pic1.Image = gambar3
gambar3.RotateFlip(RotateFlipType.Rotate90FlipNone)
Pic1.Image = gambar3

End Sub


Hasil 90 Derajat...



Private Sub DerajatToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DerajatToolStripMenuItem.Click
Dim gambar3 = New Bitmap(Pic1.Image)
gambar3 = New Bitmap(Pic1.Image)
Pic1.Image = gambar3
gambar3.RotateFlip(RotateFlipType.Rotate270FlipNone)
Pic1.Image = gambar3

End Sub


Hasil270 Derajat...



Private Sub CerminToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CerminToolStripMenuItem.Click
Dim gambar3 = New Bitmap(Pic1.Image)
gambar3 = New Bitmap(Pic1.Image)
Pic1.Image = gambar3
gambar3.RotateFlip(RotateFlipType.RotateNoneFlipX)
Pic1.Image = gambar3
End Sub


Private Sub GreenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GreenToolStripMenuItem.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 + 10
vB = .GetPixel(Pc, Pb).B
rata = (vM + vH + vB) / 3
If (rata >= 255) Then
vH = 255
vM = 0
vB = 0
Else
vM = 0
vH = 0
vB = 0
End If
.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
Next
Pic1.Image = gambar
Pic2.Refresh()
Next
End With
gambar = gambar
End Sub


Hasil Green...



Private Sub RedToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RedToolStripMenuItem.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 + 10
vH = .GetPixel(Pc, Pb).G
vB = .GetPixel(Pc, Pb).B
rata = (vM + vH + vB) / 3
If (rata >= 255) Then
vH = 0
vM = 255
vB = 0
Else
vM = 0
vH = 0
vB = 0
End If
.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
Next
Pic1.Image = gambar
Pic2.Refresh()
Next
End With
gambar = gambar
End Sub


Hasil Red...



Private Sub BlueToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BlueToolStripMenuItem.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 + 10
rata = (vM + vH + vB) / 3
If (rata >= 255) Then
vH = 0
vM = 0
vB = 255
Else
vM = 0
vH = 0
vB = 0
End If
.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
Next
Pic1.Image = gambar
Pic2.Refresh()
Next
End With
gambar = gambar
End Sub
End Class


Hasil Blue...



Nama : Afrizal
NPM : 1111864
Kelas : Si-M1107

Selamat Belajar Bahasa pemograman

Tidak ada komentar:

Posting Komentar