Thursday 19 November 2015

Pengolahan Citra 2: Model Warna RGB

Pada pertemuan 2 ini kita akan mempelajari model warna RGB. Model warna yang dikenal ada tiga jenis yaitu RGB, CMYK, HIS/HSV/HSL. Untuk pengolahan citra, yang kita gunakan adalah model warna RGB. Pada pertemuan 1, kita menemukan beberapa fungsi seperti source code berikut ini:
  • img=this.getImage(this.getDocumentBase(), "Mickey0.jpg"); getImage kita gunakan untuk memindahkan informasi yang ada pada gambar Mickey0.jpg ke dalam variabel img.
  • lebar = img.getWidth(this); tinggi = img.getHeight(this); getWidth dan getHeight kita gunakan untuk memindahkan informasi lebar dan tinggi image ke dalam variabel lebar dan tinggi yang sudah dideklarasikan.
  •  g.setColor(new Color(red, green, blue)); setColor kita gunakan untuk memberi warna pada image yang akan kita olah.
  • g.drawString("Normal",  lebar+100,40);  drawString kita gunakan untuk menggambar tulisan. Pada kode tersebut artinya kita akan mencetak hasil berupa tulisan “Normal” tanpa tanda kutip.
  • g.drawLine(i+lebar+100,                   j+50, i+lebar+100, j+50); drawLine kita gunakan untuk menggambar image yang telah kita oleh.
  • g.drawOval(i+lebar+100+lebar+50,          j+50, 1,1); drawOval digunakan untuk menggambar image yang telah kita olah. Sama seperti drawLine.

Untuk melakukan pewarnaan, dalam pemrograman pengolahan citra satu warna kita gunakan 8 bit. Jadi untuk satu warna misalnya warna merah, maka disediakan 8 bit dengan nilai 0-255. Dalam java, untuk menampung warna disediakan 32 bit integer.untuk itu dalam praktikum ini kita menggunakan 3 warna, jadi hanya menggunakan 24 bit. Bagaimana cara kita memprogram warna? Dalam source code pada pertemuan 1 kita menemukan kode seperti red = (warna >> 16) & 0xff; maka penjelasannya adalah sebagai berikut:


blue = (warna) & 0xff; Tidak ada tanda pergeseran, karena warna biru memang sudah menempati 8 bit pertama seperti gambar di bawah ini:


Karna hanya ingin mengambil warna biru, maka untuk warna lain kita lakukan operasi AND. Kita akan melakukan AND dengan 0, maka dari itu ada kode 0xff.

green = (warna >> 8) & 0xff; Kita melakukan operasi pergeseran (>>) karena untuk satu warna kita hanya perlu 8 bit, maka warna hijau yang berada setelah biru harus kita geser sebanyak 8 bit menggantikan warna biru. Berikut contoh penggambarannya:


Setelah melakukan operasi AND dengan 0 untuk warna selain warna hijau, maka di dapatlah warna hijau seperti gambar proses di atas.

red = (warna >> 16) & 0xff; Untuk mendapatkan warna merah, kita perlu menggeser 16 bit untuk menempati tempat posisi warna biru (8 bit pertama). Gambar prosesnya sebagai berikut:


Pada pertemuan 2 ini, kita akan membuat tiga tampilan. Langsung saja kita mulai pembahasan untuk membuat tampilan pertama, kita simpan dengan nama file ModelWarna.java, berikut adalah source programnya:





Source code tampilan web:


Proses compile:


Menampilkan dengan appletviewer:


Hasil tampilannya adalah sebagai berikut:


Tampilan kedua, berikut ini adalah source code untuk menampilkan tampilan kedua:




Source code tampilan web:



Proses compile:


Menampilkan dengan appletviewer:;


Hasil tampilannya adalah sebagai berikut:


Pada pengaturan tampilan kedua, kita hanya perlu memindahkan dua gambar terakhir pada tampilan pertama sehingga didapat tampilan seperti gambar di atas. Berikutnya adalah tampilan ketiga atau yang terakhir dari pertemuan kedua ini. Langsung saja kita masuk dalam pembahasan tampilan yang ketiga:

Tampilan ketiga, berikut ini source code untuk menampilkan tampilan ketiga:




Source code tampilan web:


Proses compile:


Menampilkan dengan appletviewer:


Hasil tampilannya adalah sebagai berikut:


Kita lihat dalam deretan gambar yang di atas dengan yang di bawah ada perbedaan pada warnanya, pada gambar berwarna merah terlihat jelas bahwa pada gambar di atas, kancing baju mickey tidak terlihat, tetapi di bagian yang bawah, kancing bajunya terlihat. Itulah kenapa jika kita lihat pada source code programnya kita menggunakan warna abu-abu. Jadi untuk deretan gamba yang di bawah kita isi dengan warna abu-abu di posisi setiap gambarnya, untuk grayscale, channel red, green, dan blue kita tidak menggunakan variabel red, green ataupun blue, tetapi semuanya kita gunakan variabel abuabu. Hanya untuk mengisi warna merah, maka variabel abuabu menempati posisi merah dan yang lain diisi dengan nilai 0, begitu juga halnya dengan warna green dan blue.

Sekian pembahasan pengolahan citra pada pertemuan kali ini mengenai Model Warna RGB.

















No comments:

Post a Comment