Pemahaman Konversi Warna dari RGB ke Lab

By | December 4, 2023
Print Friendly, PDF & Email
2,843 Views

Konversi warna adalah bagian integral dari pengolahan citra dan grafika komputer. Salah satu metode konversi yang sering digunakan adalah dari RGB (Red, Green, Blue) ke Lab, yang memberikan representasi warna yang lebih alami dan sesuai dengan persepsi manusia

Konversi RGB ke Lab.  Pengolahan citra digital banyak melibatkan beberapa format warna diantaranya binary, grayscale, RGB, XYZ, Lab. Penggunaan masing-masing format warna tersebut dapat disesuaikan dengan kebutuhan yang ada. Paling sering digunakan adalam format warna RGB yang merupakan warna dasar dari 3 komponen warna yaitu red, green, dan blue. Namun ketika kita membutuhkan warna lainnya seperti Lab maka setiap format dapat di convert koq. Misalkan yang akan dibahas kali ini yaitu Konversi RGB ke Lab. Format RGB bisa kita lakukan transformasi kedalam format yang lainnya, salah satu dari tersebut ke format Lab, berikut penulis sajikan code yang dicomot dari https://www.eecs.berkeley.edu/ dalam bentuk code di matlab atau juga bisa menggunakan calculator online di http://colormine.org/convert/rgb-to-lab.

1. Dasar-dasar Model Warna RGB dan Lab

a. Model Warna RGB

Model warna RGB adalah representasi warna yang paling umum digunakan dalam perangkat elektronik dan tampilan komputer. Warna ditentukan oleh kombinasi intensitas dari tiga warna dasar: merah (R), hijau (G), dan biru (B).

b. Model Warna Lab

Model warna Lab, singkatan dari L* a* b*, adalah model warna yang dirancang untuk mencocokkan persepsi warna manusia. Komponen L* mewakili kecerahan (luminositas), sementara komponen a* dan b* mewakili variasi warna dari merah ke hijau dan dari kuning ke biru.

See also  Logika Boolean Exclusive OR - XOR

2. Formula Konversi RGB ke Lab

Konversi warna dari RGB ke Lab melibatkan sejumlah rumus matematis kompleks yang bergantung pada karakteristik setiap model warna. Untuk setiap piksel RGB, saya akan membuat sebuah function dengan nama RGB2Lab.m yang terdiri dari 3 argument input yaitu array serta output argumen

function [L,a,b] = RGB2Lab(R,G,B)
% function [L, a, b] = RGB2Lab(R, G, B)
% RGB2Lab takes matrices corresponding to Red, Green, and Blue, and 
% transforms them into CIELab.  This transform is based on ITU-R 
% Recommendation  BT.709 using the D65 white point reference.
% The error in transforming RGB -> Lab -> RGB is approximately
% 10^-5.  RGB values can be either between 0 and 1 or between 0 and 255.  
% By Mark Ruzon from C code by Yossi Rubner, 23 September 1997.
% Updated for MATLAB 5 28 January 1998.

if (nargin == 1)
  B = double(R(:,:,3));
  G = double(R(:,:,2));
  R = double(R(:,:,1));
end

if ((max(max(R)) > 1.0) | (max(max(G)) > 1.0) | (max(max(B)) > 1.0))
  R = R/255;
  G = G/255;
  B = B/255;
end

[M, N] = size(R);
s = M*N;

% Set a threshold
T = 0.008856;

RGB = [reshape(R,1,s); reshape(G,1,s); reshape(B,1,s)];

% RGB to XYZ
MAT = [0.412453 0.357580 0.180423;
       0.212671 0.715160 0.072169;
       0.019334 0.119193 0.950227];
XYZ = MAT * RGB;

X = XYZ(1,:) / 0.950456;
Y = XYZ(2,:);
Z = XYZ(3,:) / 1.088754;

XT = X > T;
YT = Y > T;
ZT = Z > T;

fX = XT .* X.^(1/3) + (~XT) .* (7.787 .* X + 16/116);

% Compute L
Y3 = Y.^(1/3); 
fY = YT .* Y3 + (~YT) .* (7.787 .* Y + 16/116);
L  = YT .* (116 * Y3 - 16.0) + (~YT) .* (903.3 * Y);

fZ = ZT .* Z.^(1/3) + (~ZT) .* (7.787 .* Z + 16/116);

% Compute a and b
a = 500 * (fX - fY);
b = 200 * (fY - fZ);

L = reshape(L, M, N);
a = reshape(a, M, N);
b = reshape(b, M, N);

if ((nargout == 1) | (nargout == 0))
  L = cat(3,L,a,b);
end

Untuk penggunaanya Code untuk Konversi RGB ke Lab dengan cara memilih terlebih dahulu channel RBG pada format truecolor, oiya jangan lupa untuk menampilkan dalam format gambar diperlukan casting ke uint8(). Berikut cara penggunaan Code untuk Konversi RGB ke Lab

I = imread('gambar.jpg');
if ndim(I)==3
   [L,a,b] = RGB2Lab(I(:,:,1),I(:,:,2),I(:,:,3)); 
   %bila ingin ditampilkan dalam figure
   LAB(:,:,1) = uint8(L);
   LAB(:,:,2) = uint8(a);
   LAB(:,:,3) = uint8(b);
   figure
   imshow(LAB)
end

 

See also  Algoritma Dynamic Time Warping

Code diatas diambil dari link https://www.eecs.berkeley.edu/Research/Projects/CS/vision/bsds/code/Util/RGB2Lab.m Penjelasan mengenai Lab pada link http://www.colourphil.co.uk/lab_lch_colour_space.shtml

3. Keuntungan Konversi ke Model Warna Lab

a. Persepsi Manusia yang Lebih Baik

Model warna Lab lebih baik mencerminkan cara manusia mempersepsikan warna, membuatnya berguna dalam aplikasi pengolahan citra dan desain grafis.

b. Perubahan Kecerahan yang Konsisten

Konversi ke Lab menghasilkan perubahan kecerahan yang lebih konsisten dibandingkan dengan konversi warna di ruang warna RGB.

4. Aplikasi dalam Bidang Pengolahan Citra dan Desain Grafis

a. Koreksi Warna dan Penyesuaian Gambar

Konversi RGB ke Lab digunakan untuk koreksi warna dan penyesuaian gambar agar sesuai dengan tampilan yang diharapkan oleh mata manusia.

b. Deteksi Warna dalam Citra Medis

Dalam pengolahan citra medis, konversi ke Lab sering digunakan untuk mendeteksi dan mengklasifikasikan warna dalam citra medis.

5. Pertimbangan Tantangan dan Kompleksitas

Meskipun konversi warna RGB ke Lab memiliki banyak keuntungan, juga terdapat tantangan dan kompleksitas, terutama dalam kalkulasi matematis yang melibatkan parameter kompleks dari model warna Lab.

Leave a Reply