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