Sabtu, 29 Juni 2013

Pengolahan Citra Menggunakan VB Net

Masih tentang pengolahan citra nih :). Berikut contoh program aplikasi untuk melakukan pengolahan citra : 1. Citra Grayscale 2. Citra Biner 3. Citra Rotate 180 derajat 4. Citra Negatif 5. Citra Brightness Program juga dilengkapi dengan menu Open dan Save citra yang akan dan telah di olah. Berikut design aplikasi sederhana pengolahan citra menggunakan VB Net
 photo citra1_zps3def6f81.jpg Tambahkan komponen menustrip (pada toolbox Menus & Toolbar), OpenFileDialog ( pada toolbox Dialog) dan SaveFileDialog (pada toolbox Dialog) name dirubah menjadi OFDOpenFileDialog name dirubah menjadi SFDSaveFileDialog Isi menu  photo citra2_zps1966c71b.jpg Listing program pengolahan citra menggunakan VB Net Public Class Form1 Dim gambar As Bitmap 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 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 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 Private Sub BrigtnessToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BrigtnessToolStripMenuItem.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 Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.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 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 Private Sub RotateToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RotateToolStripMenuItem.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 gambar = gambar3 End Sub End Class Hasil program Citra Biner  photo citra3_zps8366101a.jpg Citra Negatif  photo citra4_zps6dce6d33.jpg Citra Rotate 180 derajat  photo citra5_zps30a50c6a.jpg

Tidak ada komentar:

Posting Komentar