Dasar Warna dan Ruang Warna

Manusia sebenarnya melihat warna adalah karena cahaya yang dipantulkan oleh  objek. Dalam hal ini, spektrum cahaya kromatis berkisar antara 400-700 nm (Zhou, dkk., 2010).  Istilah kromatis berarti kualitas warna cahaya yang ditentukan oleh panjang gelombang.

            Karakteristik persepsi mata manusia dalam yang membedakan antara satu warna dengan warna yang lain berupa hue, saturation, dan brightness.

  • Hue merujuk ke warna yang dikenal manusia, seperti merah dan hijau. Properti ini mencerminkan warna yang ditangkap oleh mata manusia yang menanggapi berbagai nilai panjang gelombang cahaya. Sebagai contoh, bila mata menangkap panjang gelombang antara 430 dan 480 nanometer, sensasi yang diterima adalah warna biru, sedangkan jika panjang gelombang berkisar antara 570 sampai dengan 600 nm, warna yang terlihat adalah kuning (Crane, 1997), sedang campuran merah dan hijau terlihat kuning.
  • Saturation menyatakan tingkat kemurnian warna atau seberapa banyak cahaya putih yang tercampur dengan hue. Setiap warna murni bersaturasi 100% dan tidak mengandung cahaya putih sama sekali. Dengan kata lain, suatu warna murni yang bercampur dengan cahaya putih memiliki saturasi antara 0 dan 100%.
  • Brightness atau kadang disebut lightness (kecerahan) menyatakan intensitas pantulan objek yang diterima mata. Intensitas dapat dinyatakan sebagai perubahan warna putih menuju abu-abu dan terakhir mencapai ke warna hitam, atau yang dikenal dengan istilah aras keabuan.

Perlu diketahui, istilah kromatik berarti gabungan antara hue dan saturation dan istilah akromatik merujuk ke kecerahan.

Ruang Warna

Gonzalez & Woods (2002) mendefinisikan ruang warna (atau kadang disebut sistem warna atau model warna) sebagai suatu spesifikasi sistem koordinat dan suatu subruang dalam sistem tersebut dengan setiap warna dinyatakan dengan satu titik di dalamnya. Tujuan dibentuknya ruang warna adalah untuk memfasilitasi spesifikasi warna dalam bentuk suatu standar. Ruang warna yang paling dikenal pada perangkat komputer adalah RGB, yang sesuai dengan watak manusia dalam menangkap warna. Namun, kemudian dibuat banyak ruang warna, antara lain HSI, CMY, LUV, dan YIQ.

Ruang Warna RGB

Ruang warna RGB biasa diterapkan pada monitor CRT dan kebanyakan sistem grafika komputer. Ruang warna ini menggunakan tiga komponen dasar yaitu merah (R), hijau (G), dan biru (B). Setiap piksel dibentuk oleh ketiga komponen tersebut. Model RGB biasa disajikan dalam bentuk kubus tiga dimensi, dengan warna merah, hijau, dan biru berada pada pojok sumbu (Gambar 9.1). Warna hitam berada pada titik asal dan warna putih berada di ujung kubus yang berseberangan. Gambar 9.2 memperlihatkan kubus warna secara nyata dengan resolusi 24 bit. Perlu diketahui, dengan menggunakan 24 bit, jumlah warna mencapai 16.777.216.

Skema Ruang Warna RGB Dalam Bentuk kubus
Skema Ruang Warna RGB Dalam Bentuk kubus

 

Kubus Warna Dengan 24 bit
Kubus Warna Dengan 24 bit

RGB biasa digunakan karena kemudahan dalam perancangan hardware, tetapi sebenarnya tidak ideal untuk beberapa aplikasi. Mengingat warna merah, hijau, dan biru sesungguhnya terkorelasi erat, sangat sulit untuk beberapa algoritma pemrosesan citra (Crane, 1997). Sebagai contoh, kebutuhan untuk memperoleh warna alamiah seperti merah dengan menggunakan RGB menjadi sangat kompleks mengingat komponen R dapat berpasangan dengan G dan B, dengan nilai berapa saja. Hal ini menjadi mudah jika menggunakan ruang warna HLS ataupun HSV.

Ruang Warna CMY/CMYK

Model warna CMY (cyan, magenta, yellow) mempunyai hubungan dengan RGB sebagai berikut:

          new-picture-5

Dalam hal ini, R, G, dan B berupa nilai warna yang telah dinormalisasi, dengan jangkauan [0, 1].

Pada CMY, warna hitam diperoleh jika C, M, dan Y bernilai sama. Namun, pada aplikasi printer, warna hitam ditambahkan tersendiri sehingga membentuk CMYK, dengan K menyatakan warna hitam. Alasannya, kalau ada warna hitam, warna dapat diambilkan secara langsung dari tinta hitam, tanpa perlu mencampur dengan warna lain. Lagipula, tinta warna hitam lebih murah daripada tinta berwarna dan paling sering digunakan terutama untuk teks.

Warna warna Lain Dapat Dibentuk Melalui Kombinasi Warna Dasar
Warna warna Lain Dapat Dibentuk Melalui Kombinasi Warna Dasar

Perlu diketahui, konversi dari CMY ke CMYK dapat menggunakan berbagai cara perhitungan. Salah satu rumus yang digunakan sebagai berikut (Crane, 1997):

K = min(C, M, Y)                                                                              (9.2)

C’ = C – K                                                                                            (9.3)

M’ = M – K                                                                                          (9.4)

Y’ = Y – K                                                                                            (9.5)

Dengan pendekatan seperti itu, salah satu dari C’, M’, atau Y’ akan bernilai 0. Namun, ada pula yang menggunakan rumus seperti berikut (Dietrich, 2003):

K = min(C, M, Y)                                                                                (9.6)

C = (C – K)/(1-K)                                                                               (9.7)

M = (M – K) (1-K)                                                                              (9.8)

Y = (Y – K) (1-K)                                                                                (9.9)

Dalam hal ini, jika K = 1, C=Y=K=0.

Selain itu, pendekatan yang lain terdapat pada Pratt (2001). Rumus yang digunakan berupa:

Kb = min(1-R, 1-G, 1-B)                                                                     (9.10)

C = 1 – R – uKb                                                                                        (9.11)

M = 1 – G  – uKb                                                                                    (9.12)

Y = 1 – B – uKb                                                                                       (9.13)

K = bKb                                                                                               (9.14)

Dalam hal ini,  0 < u < 1 dan 0 < b < 1,0.

Contoh konversi dari RGB ke CMYK ditunjukkan di bawah ini.

Program: RGBkeYCB.m

function [C,M,Y,K] = RGBkeCMY(R,G,B)

% RGBkeCMY digunakan untuk mengonversi RGB ke CMYK

%&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;Berdasarkan Pratt (2001)

&amp;amp;amp;nbsp;

% Normalisasi RGB ke [0, 1]

R = double(R);

G = double(G);

B = double(B);

&amp;amp;amp;nbsp;

if max(max(R)) &amp;amp;amp;gt; 1.0 || max(max(G)) &amp;amp;amp;gt; 1.0 || ...

max(max(B)) &amp;amp;amp;gt; 1.0

R = double(R) / 255;

G = double(G) / 255;

B = double(B) / 255;

end

&amp;amp;amp;nbsp;

u = 0.5;

b = 1;

[tinggi, lebar] = size(R);

for m=1: tinggi

for n=1: lebar

Kb = min([(1-R(m,n)) (1-G(m,n)) (1-B(m,n))]);

if Kb == 1

C(m,n) = 0;

M(m,n) = 0;

Y(m,n) = 0;

else

C(m,n) = (1.0 - R(m,n) - u * Kb);

M(m,n) = (1.0 - G(m,n) - u * Kb);

Y(m,n) = (1.0 - B(m,n) - u * Kb);

K(m,n) = b * Kb;

end

end

end

&amp;amp;amp;nbsp;

% Konversikan ke jangkauan [0,255]

C = uint8(C * 255);

M = uint8(M * 255);

Y = uint8(Y * 255);

K = uint8(K * 255);

Ruang Warna HSI, HSV dan HSL

HSV dan HSL merupakan contoh ruang warna yang merepresentasikan warna seperti yang dilihat oleh mata manusia. H berasal dari kata “hue”,  S berasal dari “saturation”, L berasal dari kata “luminance”, I berasal dari kata “intensity”, dan V berasal dari “value”.

Ruang Warna HSV
Ruang Warna HSV

Model HSV, yang pertama kali diperkenalkan A. R. Smith pada tahun 1978, ditunjukkan pada Gambar 9.4. Untuk mendapatkan nilai H, S, V berdasarkan R, G, dan B, terdapat beberapa cara. Cara yang tersederhana (Acharya & Ray, 2005) adalah seperti berikut.

rumus

Namun, cara ini membuat hue tidak terdefinisikan kalau S bernilai nol. Cara kedua terdapat pada Acharya & Ray (2005). Rumus-rumus yang digunakan sebagai berikut:

new-picture-8

new-picture-9

Program: RGBkeHSV.m

function [H,S,V] = RGBkeHSV(R,G,B)

% RGBkeHSV digunakan untuk mengonversi RGB ke HSV.

%&nbsp;&nbsp;&nbsp; Algoritma berdasarkan Acharya &amp;amp; Ray (2005)

&amp;nbsp;

% Normalisasi RGB ke [0, 1]

R = double(R);

G = double(G);

B = double(B);

&amp;nbsp;

if max(max(R)) &amp;gt; 1.0 || max(max(G)) &amp;gt; 1.0 || ...

max(max(B)) &amp;gt; 1.0

R = double(R) / 255;

G = double(G) / 255;

B = double(B) / 255;

end

&amp;nbsp;

[tinggi, lebar] = size(R);

for m=1: tinggi

for n=1: lebar

minrgb = min([R(m,n) G(m,n) B(m,n)]);

maxrgb = max([R(m,n) G(m,n) B(m,n)]);

V(m,n) = maxrgb;

delta = maxrgb - minrgb;

&amp;nbsp;

if maxrgb == 0

S(m,n) = 0;

else

S(m,n) = 1 - minrgb / maxrgb;

end

&amp;nbsp;

if S(m,n) == 0

H(m,n) = 0;

else

SV = S(m,n) * V(m,n);

&amp;nbsp;

if R(m,n) == maxrgb

% Di antara kuning dan magenta

H(m,n) = (G(m,n)-B(m,n)) / SV;

elseif G(m,n) == maxrgb

% Di antara cyan dan kuning

H(m,n) = 2 + (B(m,n)-R(m,n)) / SV;

else

% Di antara magenta dan cyan

H(m,n) = 4 + (R(m,n)-G(m,n)) / SV;

end

&amp;nbsp;

H(m,n) = H(m,n) * 60;

if H(m,n) &amp;lt; 0

H(m,n) = H(m,n)+360;

end

end

end

end

&amp;nbsp;

% Konversikan ke jangkauan [0, 255] atau [0, 360]

H = uint8(H * 255/360);

S = uint8(S * 255);

V = uint8(V * 255);

&amp;nbsp;

Sumber: Pengolahan Citra, Abdul Kadir

4 Comments

Add a Comment

Your email address will not be published. Required fields are marked *