Friday, December 14, 2018

Program Pengolahan Citra Emboss dengan Visual Basic 2010

Program Pengolahan Citra Emboss 





Pada postingan kali ini kita akan mencoba membuat efek timbul pada gambar yaitu emboss. emboss adalah salah satu metode pengolahan citra, dimana gambar akan diproses menjadi efek timbul.

Untuk mendapatkan proses emboss kita harus memproses 2 pixel gambar dalam sekali proses, pixel (x, y) dan pixel (x + 1, y +1). Kemudian nilai intensitas warna RGB pixel(x,y) dikurangi nilai intensitas warna RGB pixel (x+1, y+1) ditambah Nilai timbul (128) dan nilai emboss adalah absolut dimana tidak ada nilai citra minus. Dari penjelasan tersebut proses emboss dapat dirumuskan :

E = (RGB1 - RGB2 + 128)


Ket :
E = Nilai Emboss
RGB1 = Nilai Intensitas warna RGB pixel(x,y)
RGB2 =  Nilai Intensitas warna RGB pixel (x + 1, y +1)
128 = Nilai timbul


Untuk menerapkan rumusan diatas kita buat aplikasi emboss dengan visual basic 2010 :

Langkah 1 :
  1. Buka Aplikasi Visual Basic 2010
  2. Buat New Project -> Windows Forms Application
  3. Buat Desain Seperti Berikut :
Membuat Aplikasi Pengolahan Citra Emboss dengan Visual Basic






















 


Isi Form Dengan Tool sebagai berikut :
ToolboxProperties
PictureBox1Size Mode : StretchImage
BackColor : ControlLight
PictureBox2Size Mode : StretchImage
BackColor : ControlDark
Button1Text : Open File
Button2Text : Save
Button3Text : Emboss
ProgressBar1-
OpenFileDialog1-
SaveFileDialog1-


Langkah 2 :
  • Double Klik Button1 (Open File), Masukan Skrip Berikut :
OpenFileDialog1.Filter = "Images|*.bmp;*.jpg;*.png"
OpenFileDialog1.ShowDialog()
If OpenFileDialog1.FileName <> "" Then
      PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
      PictureBox1.Width = Convert.ToInt32(PictureBox1.Height * PictureBox1.Image.Width / PictureBox1.Image.Height)
      Me.Text = OpenFileDialog1.FileName & "_" & PictureBox1.Image.Width & " X " & PictureBox1.Image.Height
      ProgressBar1.Minimum = 0 
      ProgressBar1.Maximum = PictureBox1.Image.Width 
End If


  • Double Klik Button2 (Save File), Masukan Skrip Berikut :
SaveFileDialog1.ShowDialog()
If SaveFileDialog1.FileName <> "" Then
     PictureBox2.Image.Save(SaveFileDialog1.FileName + ".jpg")
End If


  • Double Klik Button3 (Emboss), Masukan Skrip Berikut :
ProgressBar1.Value = 0 
Dim r1, g1, b1 As Integer 'Menampung Intensitas RGB pixel(x,y)'
Dim r2, g2, b2 As Integer 'Menampung Intensitas RGB pixel(x + 1,y + 1)'
Dim r3, g3, b3 As Integer'Menampung Nilai Emboss'

Dim gambar As New Bitmap(PictureBox1.Image) 
PictureBox2.Image = gambar 

Dim x, y As Integer 

For x = 0 To gambar.Width - 2 
       For y = 0 To gambar.Height - 2 

              r1 = gambar.GetPixel(x, y).R 'Mengambil Nilai Intensitas R pixel(x,y)'

              g1 = gambar.GetPixel(x, y).G 'Mengambil Nilai Intensitas G pixel(x,y)'
              b1 = gambar.GetPixel(x, y).B 'Mengambil Nilai Intensitas B pixel(x,y)'

              r2 = gambar.GetPixel(x + 1, y + 1).R 'Mengambil Nilai Intensitas R pixel(x + 1,y + 1)'

              g2 = gambar.GetPixel(x + 1, y + 1).G 'Mengambil Nilai Intensitas G pixel(x + 1,y + 1)'
              b2 = gambar.GetPixel(x + 1, y + 1).B 'Mengambil Nilai Intensitas B pixel(x + 1,y + 1)'

              r3 = Math.Abs(r1 - r2 + 128) ' Rumus Absolut E = (R1 - R2 +128)'

              g3 = Math.Abs(g1 - g2 + 128) ' Rumus Absolut E = (G1 - G2 +128)'
              b3 = Math.Abs(b1 - b2 + 128) ' Rumus Absolut E = (B1 - B2 +128)'

             'Karena nilai Emboss bisa lebih dari 255 maka dilakukan normalisai'

             If r3 > 255 Then r3 = 255
             If g3 > 255 Then g3 = 255
             If b3 > 255 Then b3 = 255

             gambar.SetPixel(x, y, Color.FromArgb(r3, g3, b3))


      Next

      ProgressBar1.Increment(1)
Next
PictureBox2.Refresh()


Untuk Hasil Dari Aplikasi Tersebut akan sepeti ini :






Klik Link : Disini












No comments:

Post a Comment