Anda di halaman 1dari 7

[DIGITAL IMAGE PROCESSING]

January 2, 2012

COLOR CONVERSION RGB to HSI

RGB (Red, Green, Blue) merupakan ruang warna yang sangat dikenal dan banyak digunakan dalam menghasilkan citra. Perangkat elektronik seperti kamera, perangkat penampil televisi memang menggunakan ruang warna ini karena bisa menghasilkan warna-warna dasar dan kombinasi yang bagus. Hal ini dikarenakan mata kita memang mampu memberikan persepsi warna yang kuat terhadap ruang warna ini. Namun menjadi kendala ketika kita ingin menginterpretasikan warna yang nyata dan tidak termasuk ke dalam ruang warna RGB. Bayangkan saja, jika kita melihat warna cyan atau magenta atau warna lainnya yang bukan warna dasar RGB maka kita akan kesulitan dalam menjelaskan warna-warna apa saja yang menyusun warna tersebut. Katakanlah jika anda mengatakan 10% hijau, 30% biru dan 60% merah. Tentu hal itu sangat tidak praktis, dan belum tentu akurat. Lebih lagi, mata kita lebih mudah untuk mempersepsikan warna itu dalam istilah kecerahannya. Untuk itu dibutuhkan ruang warna lain yang bisa membantu kita dalam menjelaskan ciri warna ini. Sebuah ruang warna yang dikenal dengan HSI (Hue, Saturation, Intensity) merupakan bentuk lain yang bisa digunakan untuk menginterpretasi karakteristik dari warna alami. Ruang warna ini tampak lebih realistis dalam menggambarkan warna secara alami dan intuitif terhadap manusia. Jadi bisa dikatakan bahwa HSI sangat cocok untuk mendeskripsikan warna sedangkan RGB cocok untuk menghasilkan warna (pada perangkat elektronis penangkap citra seperti yang telah dicontohkan di atas). Konon katanya HSI ini cocok digunakan untuk pengolahan citra digital ketimbang menggunakan RGB. Mungkin cukup beralasan berdasarkan keterangan yang telah dipaparkan di atas. Saturation atau saturasi merupakan atribut warna yang menggambarkan sebuah warna murni (pure color) seperti kuning murni, atau merah murni. Parameter ini tergantung pada banyaknya panjang gelombang yang berkontribusi pada persepsi warna yang dihasilkan. Sederhananya, semakin lebar range dari panjang gelombangnya maka semakin tidak murni warna tersebut (S mendekati 0). Sebaliknya, semakin sempit range dari panjang gelombangnya maka semakin murni warna tersebut (S mendekati 1). Hue merupakan besar sudut antara warna referensi dengan vektor S (saturation). Warna referensi biasanya adalah warna merah tapi bisa saja warna yang lain. Nilai H terletak antara 00 3600 terhadap axis warna merah. Sudut ini menggambarkan warna murni yang ditipiskan oleh cahaya putih.

jans.hendry@gmail.com| [EE&IT of UGM, Indonesia]

[DIGITAL IMAGE PROCESSING]

January 2, 2012

Gambar 1
Sources: Digital Image Processing (Rafael C. Gonzalez., et.all) page 409.

Menurut saya bila citra memperhatikan gambar di atas, nilai H bisa saja dikatakan menyatakan warna dominan dari citra. Sementara nilai S merupakan panjang jarak dari titik origin (jika dalam gambar di atas berarti titik pusat masa bidang) ke titik sembarang dimana titik sembarang tersebut merupakan titik warna. Lalu dimanakah nilai I? Perhatikan gambar di bawah ini:

Gambar 2
Sources: Digital Image Processing (Rafael C. Gonzalez., et.all) page 410.

Intensitas dari warna ditunjukkan oleh posisi dari plane atau bidang (gambar 1) pada axis vertikal. Sederhananya, semakin tinggi posisi dari bidang tersebut pada axis vertikal intensitas maka semakin besar nilai I dan sebaliknya. Perhatikan dengan seksama gambar 2. Bukan 2
jans.hendry@gmail.com| [EE&IT of UGM, Indonesia]

[DIGITAL IMAGE PROCESSING]

January 2, 2012

merupakan masalah apapun jenis dari bidangnya, baik lingkaran, segienam atau segitiga. Nilai intensitas yang diberikan akan sama. Intensitas atau kecerahan suatu warna merupakan parameter yang sangat penting karena sifatnya yang subyektif tapi mampu menggambarkan terang gelapnya warna namun tidak mudah untuk dituliskan dalam angka-angka. Dengan fakta tersebut maka intensitas merupakan istilah yang cocok digunakan dalam menjelaskan sebuah warna selain Hue dan Saturasinya. Nilai I=0 (keadaan ekstrem yang mungkin saja terjadi) menyatakan warna hitam. Seperti diketahui bahwa intensitas yang merupakan aras keabuan (gray scale) sangat cocok dalam menginterpretasikan tingkat warna citra monokromatis. Sehingga dengan aras keabuan nya itu, dia bisa diukur dan diinterpretasikan dengan mudah. Jadi ada 3 parameter penting yang bisa digunakan sebagai komposisi untuk ruang warna baru yang lebih representatif dalam menginterpretasi sebuah warna yakni H, S dan I. HSI pada dasarnya bertujuan untuk memisahkan intensitas (I) dari pembawa informasi warna (Hue dan Saturasi) pada citra berwarna. Untuk mengubah ruang warna RGB ke HSI dapat diikuti langkah-langkah berikut ini: Hitung = cos +

Hitung H (Hue) = >

360

Hitung S (saturation) =13 min , , + +

Hitung I (Intensity) = 1 3 + +

jans.hendry@gmail.com| [EE&IT of UGM, Indonesia]

[DIGITAL IMAGE PROCESSING]

January 2, 2012

Perlu dicatat bahwa nilai R,G dan B harus dipastikan berada di range [0,1] dan sudut dihitung terhadap axis warna merah (R) dalam ruang HSI. Bila diperhatikan bahwa nilai H bisa bernilai sangat besar karena diselisihkan dengan 3600. Agar nilai dari H ternormalisasi kembali maka perlu dibagi dengan 3600 lagi. Yang saya tahu, nilai 3600 ini merupakan sudut dalam derajat tapi dalam konversi nanti kita gunakan nilai radiannya yakni 2 . Nilai S dan I telah ternormalisasi dikarenakan nilai-nilai R, G dan B telah dipastikan ternormalisasi sebelumnya.

Nilai RGB sebenarnya merupakan gabungan dari 3 buah warna dasar. Dengan fakta bahwa dia adalah gabungan, maka tentu saja kita bisa memisahkan menjadi warna tunggal. Dengan demikian, perumusan di atas dapat dihitung.

Berikut ini saya hadirkan program untuk mengubah warna RGB menjadi warna HSI.
% RGB to HSI clear all; close all; clc; warning off; %% import citra dan memisahkan warna primer filename='bus2.jpg'; Img=imread(filename); imshow(Img); title('Citra Asli'); Img=im2double(Img); R=Img(:,:,1); G=Img(:,:,2); B=Img(:,:,3); %% %% konversi warna % menghitung nilai Hue -> menyatakan warna dominant pada citra N=(R-G)+(R-B); D=2*(sqrt((R-G).^2 + (R-B).*(G-B))); delta=acos(N./(D+eps)); H=delta; H(B>G)=2*pi-H(B>G); H=H/(2*pi);

jans.hendry@gmail.com| [EE&IT of UGM, Indonesia]

[DIGITAL IMAGE PROCESSING]

January 2, 2012

% menghitung nilai S yang menyatakan sifat purity citra N=min(min(R,B),G); D=(R+B+G); D(D==0)=eps; S=1-3.*N./D; H(S==0)=0; % menghitung nilai I yang menyatakan intensitas I=(R+B+G)/3; citra=cat(3,H,S,I); figure, imshow(citra); title('citra dalam HSI'); figure, imshow(H); title('nilai komponen H'); figure, imshow(S); title('nilai komponen S'); figure, imshow(I); title('nilai komponen I'); %% end

eps digunakan untuk menghindari adanya nilai Nan dan perlu diketahui citra ini harus di ubah menjadi double terlebih dahulu agar bisa dioperasikan oleh Matlab. Hasil eksekusinya

jans.hendry@gmail.com| [EE&IT of UGM, Indonesia]

[DIGITAL IMAGE PROCESSING]

January 2, 2012

jans.hendry@gmail.com| [EE&IT of UGM, Indonesia]

[DIGITAL IMAGE PROCESSING]

January 2, 2012

Perlu diingat bahwa HSI juga memiliki dimensi yang sama dengan citra RGB aslinya. Sehingga kita bisa memisahkan nilai HSI menjadi komponen tunggalnya.

Demikian artikel konversi citra RGB ke HSI. Untuk artikel konversi balik dari HSI ke RGB akan saya berikan pada artikel lain agar artikel ini tidak terlalu panjang.

@ terima kasih
Sources: Digital Image Processing 3rd ed. Rafael C. Gonzalez., Richard E. Woods. Pearson Prentice Hall. Digital Color Image Processing. Andreas Koschan and Mongi Abidi. John Wiley and Sons.

jans.hendry@gmail.com| [EE&IT of UGM, Indonesia]

Anda mungkin juga menyukai