menu

Visual Basic - Image Processing (read image)


Hello everyone, welcome back,,

Pada tutorial sebelumya kita sudah membahas tentang sistem CRUD pada Visual Basic, tutorial kali ini kita akan memulai sebuah project yang bisa dianggap sebagai project yang sangat spektakuler, dan manghabiskan waktu yang cukup lama bagi codedoct untuk melakukan research pada project ini.

Project yang akan segera dibahas codedoct kali ini adalah Image Processing (Pengolahan Citra) dan Artificial Neural Network(Jaringan Saraf Tiruan).

Jika sama sekali belum mengenal tentang Visual Basic diharapkan untuk memahaminya terlebih dahulu disini.

Oke untuk tutorial yang pertama adalah bagaimana caranya membuat sebuah software atau engine yang mampu membaca nilai RGB (Red Green Blue) dari sebuah citra Image atau gambar menggunakan Visual Basic,

Pertama buat sebuah UI yang terdiri dari picturebox, openfiledialog, textbox, label, dan richtextbox seperti ini,


Kemudian, klik 2 kali button Load Image dan masukkan code berikut, 
OpenFileDialog1.Filter = "image file (*.jpg) |*.jpg| all files (*.*) | *.*"
If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
  PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
End If

Selanjutnya klik 2 kali button Read Image dan ketikkan code berikut,
Button2.Text = "Please Wait..."
        Button2.Enabled = False

        CheckForIllegalCrossThreadCalls = False
        Dim bild As Bitmap = CType(Me.PictureBox1.Image.Clone, Bitmap)
        Dim width As Integer = bild.Width - 1
        Dim height As Integer = bild.Height - 1
        Dim h, i, j As Integer

        For x = 1 To width
            For y = 1 To height

                Dim R, G, B, A As Integer
                R = bild.GetPixel(x, y).R
                G = bild.GetPixel(x, y).G
                B = bild.GetPixel(x, y).B
                A = bild.GetPixel(x, y).A
                h = h + R
                i = i + G
                j = j + B

                RichTextBox1.AppendText(R & "-" & G & "-" & B & "-" & A & "'" & x & "," & y & vbNewLine)
            Next
        Next
        RichTextBox1.Text = RichTextBox1.Text.Substring(0, RichTextBox1.Text.Length - 1)
        RichTextBox1.AppendText("|" & width & "*" & height)
        hasil1.Text = h / 1000
        hasil2.Text = i / 1000
        hasil3.Text = j / 1000

        Button2.Text = "Load Data"
        Button2.Enabled = True

Sehingga full codenya akan tampak seperti ini,
Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        OpenFileDialog1.Filter = "image file (*.jpg) |*.jpg| all files (*.*) | *.*"
        If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
            PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
        End If
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Button2.Text = "Please Wait..."
        Button2.Enabled = False

        CheckForIllegalCrossThreadCalls = False
        Dim bild As Bitmap = CType(Me.PictureBox1.Image.Clone, Bitmap)
        Dim width As Integer = bild.Width - 1
        Dim height As Integer = bild.Height - 1
        Dim h, i, j As Integer

        For x = 1 To width
            For y = 1 To height

                Dim R, G, B, A As Integer
                R = bild.GetPixel(x, y).R
                G = bild.GetPixel(x, y).G
                B = bild.GetPixel(x, y).B
                A = bild.GetPixel(x, y).A
                h = h + R
                i = i + G
                j = j + B

                RichTextBox1.AppendText(R & "-" & G & "-" & B & "-" & A & "'" & x & "," & y & vbNewLine)
            Next
        Next
        RichTextBox1.Text = RichTextBox1.Text.Substring(0, RichTextBox1.Text.Length - 1)
        RichTextBox1.AppendText("|" & width & "*" & height)
        hasil1.Text = h / 1000
        hasil2.Text = i / 1000
        hasil3.Text = j / 1000

        Button2.Text = "Load Data"
        Button2.Enabled = True
    End Sub
End Class

Dan tampilannya akan tampak seperti ini,


Masing - masing nilai RGB yang didapat adalah total dari nilai RGB setiap pixel,

===DONE!===