Materi Sebelumnya:
1. Dasar Warna
karakteristik persepsi mata manusia yang membedakan antara saru warna dengan warna lain adalah
- Hueàmencerminkan warna yang ditangkap oleh mata manusia yang menanggapi berbagai nilai panjang gelombang cahaya. panjang gelombang 430 dan 480 nanometer warna yang diterima adalah warna biru, 570 – 600 warna yang diterima kuning, sedangkan 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 perkataan lain suatu warna murni yang bercampur dengan cahaya putih memliki saturasi antara 0 sampai 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 denagn istilah aras keabuan.
2. Ruang Warna
Gonzalez dan 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 titik di dalamnya.
Tujuan dibentuk warna untuk memfasilitasi spesifikasi warna dalam bentuk suatu standar. Ruang warna paling dikenal pada perangkat komputer adalah RGB sesuai watak manusia yang menangkap warna. Kemudian dibuat banyak warna antara lain HSI, CMY, LUV, YIQ
3. Ruang RGB
Model RGB bisa disajikan dalam bentuk kubus tiga dimensi dengan warna merah, hijau, dan biru berada pada pojok sumbu perhatikan gambar berikut
Selanjutnya pada coding octave :
Program Citra berwarna RGB Ke CMYK dengan fungsi sudah dimodifikasi hotma
=====================================================================
function [c,m,y,k] = rgbkecmyk(r,g,b)
if max(max(r)) > 1.0 || max(max(g)) > 1.0 || max(max(b)) > 1.0
r = double(r) / 255;
g = double(g) / 255;
b = double(b) / 255;
end
u = 0.5;
be = 1;
[tinggi, lebar] = size(r);
for baris=1: tinggi
for kolom=1: lebar
kb = min([(1-r(baris,kolom)) (1-g(baris,kolom)) (1-b(baris,kolom))]);
if kb == 1
c(baris,kolom) = 0;
m(baris,kolom) = 0;
y(baris,kolom) = 0;
else
c(baris,kolom) = (1.0 - r(baris,kolom) - u * kb);
m(baris,kolom) = (1.0 - g(baris,kolom) - u * kb);
y(baris,kolom) = (1.0 - b(baris,kolom) - u * kb);
k(baris,kolom) = be * kb;
end
end
end
% Konversikan ke jangkauan [0,255]
c = uint8(c * 255);
m = uint8(m * 255);
y = uint8(y * 255);
k = uint8(k * 255);
end %akhir fungsi
[c,m,y,k] = rgbkecmyk(171, 215, 170)
konversi rgb ke cmyk dengan nilai =
c = 64
m = 20
y = 65
k = 40
img = imread('c:\Image\an.jpg');
[c,m,y,k] = rgbkecmyk(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([c,m,y,k])
Program Citra berwarna RGB Ke CMYK dengan fungsi dari buku
==============================================
function [C,M,Y,K] = RGBkeCMY(R,G,B)
if max(max(R)) > 1.0 || max(max(G)) > 1.0 || max(max(B)) > 1.0
R = double(R) / 255;
G = double(G) / 255;
B = double(B) / 255;
end
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
% Konversikan ke jangkauan [0,255]
C = uint8(C * 255);
M = uint8(M * 255);
Y = uint8(Y * 255);
K = uint8(K * 255);
end %akhir fungsi
[C,M,Y,K] = RGBkeCMY(171, 215, 170)
hasil konversi RGB ke CMYK=
C = 64
M = 20
Y = 65
K = 40
img = imread('C:\Image\an.jpg');
[C,M,Y,K] = RGBkeCMY(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([C,M,Y,K])
program cmyk ke rgb dengan fungsi dari buku
=======================================
function [R,G,B] = CMYkeRGB(C,M,Y,K)
% CMYkeRGB digunakan untuk mengonversi CMYK ke RGB
% Berdasarkan Pratt (2001)
% Dasar: b=1 dan u = 0,5
% Normalisasi CMY ke [0, 1]
C = double(C);
M = double(M);
Y = double(Y);
K = double(K);
if max(max(C)) > 1.0 || max(max(M)) > 1.0 || ...
max(max(Y)) > 1.0 || max(max(K)) > 1.0
C = double(C) / 255;
M = double(M) / 255;
Y = double(Y) / 255;
K = double(K) / 255;
end
u = 0.5;
b = 1;
[tinggi, lebar] = size(C);
for m=1: tinggi
for n=1: lebar
Kb = K(m,n) / b;
if Kb == 1
R(m,n)=0;
G(m,n)=0;
B(m,n)=0;
else
R(m,n) = 1 - (C(m, n) + u * Kb);
G(m,n) = 1 - (M(m, n) + u * Kb);
B(m,n) = 1 - (Y(m, n) + u * Kb);
end
end
end
% Konversikan ke jangkauan [0,255]
R = uint8(R * 255);
G = uint8(G * 255);
B = uint8(B * 255);
end %akhir fungsi
[R,G,B] = CMYkeRGB(64,20,65,40)
hasil konversi CMYK ke RGB =
R = 171
G = 215
B = 170
img=imread('c:\image\andri 12.jpg');
[R,G,B] = CMYkeRGB(img(:,:,1), img(:,:,2), img(:,:,3));
Program rgb ke yiq dengan fungsi sudah dimodifikasi Hotma
==================================================
function [y, i, q] = rgbkeyiq(r,g,b)
if max(max(r)) > 1 || max(max(g)) > 1 || max(max(b)) > 1
r = double(r) / 255;
g = double(g) / 255;
b = double(b) / 255;
end
[tinggi, lebar] = size(r);
for m=1: tinggi
for n=1: lebar
y(m,n) = 0.299 * r(m,n) + 0.587 * g(m,n) + 0.114*b(m,n);
i(m,n) = 0.596 * r(m,n) - 0.274 * g(m,n) - 0.322*b(m,n);
q(m,n) = 0.211 * r(m,n) - 0.523 * g(m,n) + 0.312*b(m,n);
end
end
% Konversikan ke jangkauan [0,255]
y = uint8(y * 255);
i = uint8(i * 255);
q = uint8(q * 255);
end %akhir fungsi
[y,i,q] = rgbkeyiq(171, 20, 250)
hasil konversi RGB ke YIQ =
Y = 91
I = 16
Q = 104
img = imread('C:\Image\an.jpg');
[y,i,q] = rgbkeyiq(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([y,i,q])
Program RGB ke YIQ dengan fungsi
======================================
function [Y, I, Q] = RGBkeYIQ(R,G,B)
% RGBkeYIQ digunakan untuk mengonversi RGB ke YIQ
% Normalisasi RGB ke [0, 1]
R = double(R);
G = double(G);
B = double(B);
if max(max(R)) > 1.0 || max(max(G)) > 1.0 || max(max(B)) > 1.0
R = double(R) / 255;
G = double(G) / 255;
B = double(B) / 255;
end
[tinggi, lebar] = size(R);
for m=1: tinggi
for n=1: lebar
Y(m,n) = 0.299 * R(m,n) + 0.587 * G(m,n) + 0.114*B(m,n);
I(m,n) = 0.596 * R(m,n) - 0.274 * G(m,n) - 0.322*B(m,n);
Q(m,n) = 0.211 * R(m,n) - 0.523 * G(m,n) + 0.312*B(m,n);
end
end
% Konversikan ke jangkauan [0,255]
Y = uint8(Y * 255);
I = uint8(I * 255);
Q = uint8(Q * 255);
end %akhir fungsi
[Y,I,Q] = RGBkeYIQ(171, 20, 250)
hasil konversi RGB ke YIQ =
Y = 91
I = 16
Q = 104
img = imread('C:\Image\an.jpg');
[Y,I,Q] = RGBkeYIQ(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([Y,I,Q])
Program RGB ke YCB dengan fungsi dari buku
=========================================
function [Y, Cb, Cr] = RGBkeYCB(R,G,B)
% RGBkeYCB digunakan untuk mengonversi RGB ke YCbCr
% Normalisasi RGB ke [0, 1]
R = double(R);
G = double(G);
B = double(B);
if max(max(R)) > 1.0 || max(max(G)) > 1.0 || ...
max(max(B)) > 1.0
R = double(R) / 255;
G = double(G) / 255;
B = double(B) / 255;
end
[tinggi, lebar] = size(R);
for m=1: tinggi
for n=1: lebar
Y(m,n)=0.299*R(m,n)+0.587*G(m,n)+ 0.114*B(m,n);
Cb(m,n)=-0.1687*R(m,n)-0.33126*G(m,n)+0.5*B(m,n);
Cr(m,n)=0.5*R(m,n)-0.41869*G(m,n)-0.08131*B(m,n);
end
end
Y = Y * 255;
Cb = Cb * 255;
Cr = Cr * 255;
end %akhir fungsi
[Y,Cb,Cr] = RGBkeYCB(9, 16, 250)
hasil konversi RGB ke YCB dengan angka
Y = 40.583
Cb = 118.18
Cr = -22.527
perintah untuk melihat konversi dengan citra
=======================================
img = imread('C:\Image\an.jpg');
[Y,Cb,Cr] = RGBkeYCB(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([Y,Cb,Cr])
=====================================================================
function [c,m,y,k] = rgbkecmyk(r,g,b)
if max(max(r)) > 1.0 || max(max(g)) > 1.0 || max(max(b)) > 1.0
r = double(r) / 255;
g = double(g) / 255;
b = double(b) / 255;
end
u = 0.5;
be = 1;
[tinggi, lebar] = size(r);
for baris=1: tinggi
for kolom=1: lebar
kb = min([(1-r(baris,kolom)) (1-g(baris,kolom)) (1-b(baris,kolom))]);
if kb == 1
c(baris,kolom) = 0;
m(baris,kolom) = 0;
y(baris,kolom) = 0;
else
c(baris,kolom) = (1.0 - r(baris,kolom) - u * kb);
m(baris,kolom) = (1.0 - g(baris,kolom) - u * kb);
y(baris,kolom) = (1.0 - b(baris,kolom) - u * kb);
k(baris,kolom) = be * kb;
end
end
end
% Konversikan ke jangkauan [0,255]
c = uint8(c * 255);
m = uint8(m * 255);
y = uint8(y * 255);
k = uint8(k * 255);
end %akhir fungsi
[c,m,y,k] = rgbkecmyk(171, 215, 170)
konversi rgb ke cmyk dengan nilai =
c = 64
m = 20
y = 65
k = 40
img = imread('c:\Image\an.jpg');
[c,m,y,k] = rgbkecmyk(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([c,m,y,k])
Program Citra berwarna RGB Ke CMYK dengan fungsi dari buku
==============================================
function [C,M,Y,K] = RGBkeCMY(R,G,B)
if max(max(R)) > 1.0 || max(max(G)) > 1.0 || max(max(B)) > 1.0
R = double(R) / 255;
G = double(G) / 255;
B = double(B) / 255;
end
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
% Konversikan ke jangkauan [0,255]
C = uint8(C * 255);
M = uint8(M * 255);
Y = uint8(Y * 255);
K = uint8(K * 255);
end %akhir fungsi
[C,M,Y,K] = RGBkeCMY(171, 215, 170)
hasil konversi RGB ke CMYK=
C = 64
M = 20
Y = 65
K = 40
img = imread('C:\Image\an.jpg');
[C,M,Y,K] = RGBkeCMY(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([C,M,Y,K])
program cmyk ke rgb dengan fungsi dari buku
=======================================
function [R,G,B] = CMYkeRGB(C,M,Y,K)
% CMYkeRGB digunakan untuk mengonversi CMYK ke RGB
% Berdasarkan Pratt (2001)
% Dasar: b=1 dan u = 0,5
% Normalisasi CMY ke [0, 1]
C = double(C);
M = double(M);
Y = double(Y);
K = double(K);
if max(max(C)) > 1.0 || max(max(M)) > 1.0 || ...
max(max(Y)) > 1.0 || max(max(K)) > 1.0
C = double(C) / 255;
M = double(M) / 255;
Y = double(Y) / 255;
K = double(K) / 255;
end
u = 0.5;
b = 1;
[tinggi, lebar] = size(C);
for m=1: tinggi
for n=1: lebar
Kb = K(m,n) / b;
if Kb == 1
R(m,n)=0;
G(m,n)=0;
B(m,n)=0;
else
R(m,n) = 1 - (C(m, n) + u * Kb);
G(m,n) = 1 - (M(m, n) + u * Kb);
B(m,n) = 1 - (Y(m, n) + u * Kb);
end
end
end
% Konversikan ke jangkauan [0,255]
R = uint8(R * 255);
G = uint8(G * 255);
B = uint8(B * 255);
end %akhir fungsi
[R,G,B] = CMYkeRGB(64,20,65,40)
hasil konversi CMYK ke RGB =
R = 171
G = 215
B = 170
img=imread('c:\image\andri 12.jpg');
[R,G,B] = CMYkeRGB(img(:,:,1), img(:,:,2), img(:,:,3));
Program rgb ke yiq dengan fungsi sudah dimodifikasi Hotma
==================================================
function [y, i, q] = rgbkeyiq(r,g,b)
if max(max(r)) > 1 || max(max(g)) > 1 || max(max(b)) > 1
r = double(r) / 255;
g = double(g) / 255;
b = double(b) / 255;
end
[tinggi, lebar] = size(r);
for m=1: tinggi
for n=1: lebar
y(m,n) = 0.299 * r(m,n) + 0.587 * g(m,n) + 0.114*b(m,n);
i(m,n) = 0.596 * r(m,n) - 0.274 * g(m,n) - 0.322*b(m,n);
q(m,n) = 0.211 * r(m,n) - 0.523 * g(m,n) + 0.312*b(m,n);
end
end
% Konversikan ke jangkauan [0,255]
y = uint8(y * 255);
i = uint8(i * 255);
q = uint8(q * 255);
end %akhir fungsi
[y,i,q] = rgbkeyiq(171, 20, 250)
hasil konversi RGB ke YIQ =
Y = 91
I = 16
Q = 104
img = imread('C:\Image\an.jpg');
[y,i,q] = rgbkeyiq(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([y,i,q])
Program RGB ke YIQ dengan fungsi
======================================
function [Y, I, Q] = RGBkeYIQ(R,G,B)
% RGBkeYIQ digunakan untuk mengonversi RGB ke YIQ
% Normalisasi RGB ke [0, 1]
R = double(R);
G = double(G);
B = double(B);
if max(max(R)) > 1.0 || max(max(G)) > 1.0 || max(max(B)) > 1.0
R = double(R) / 255;
G = double(G) / 255;
B = double(B) / 255;
end
[tinggi, lebar] = size(R);
for m=1: tinggi
for n=1: lebar
Y(m,n) = 0.299 * R(m,n) + 0.587 * G(m,n) + 0.114*B(m,n);
I(m,n) = 0.596 * R(m,n) - 0.274 * G(m,n) - 0.322*B(m,n);
Q(m,n) = 0.211 * R(m,n) - 0.523 * G(m,n) + 0.312*B(m,n);
end
end
% Konversikan ke jangkauan [0,255]
Y = uint8(Y * 255);
I = uint8(I * 255);
Q = uint8(Q * 255);
end %akhir fungsi
[Y,I,Q] = RGBkeYIQ(171, 20, 250)
hasil konversi RGB ke YIQ =
Y = 91
I = 16
Q = 104
img = imread('C:\Image\an.jpg');
[Y,I,Q] = RGBkeYIQ(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([Y,I,Q])
Program RGB ke YCB dengan fungsi dari buku
=========================================
function [Y, Cb, Cr] = RGBkeYCB(R,G,B)
% RGBkeYCB digunakan untuk mengonversi RGB ke YCbCr
% Normalisasi RGB ke [0, 1]
R = double(R);
G = double(G);
B = double(B);
if max(max(R)) > 1.0 || max(max(G)) > 1.0 || ...
max(max(B)) > 1.0
R = double(R) / 255;
G = double(G) / 255;
B = double(B) / 255;
end
[tinggi, lebar] = size(R);
for m=1: tinggi
for n=1: lebar
Y(m,n)=0.299*R(m,n)+0.587*G(m,n)+ 0.114*B(m,n);
Cb(m,n)=-0.1687*R(m,n)-0.33126*G(m,n)+0.5*B(m,n);
Cr(m,n)=0.5*R(m,n)-0.41869*G(m,n)-0.08131*B(m,n);
end
end
Y = Y * 255;
Cb = Cb * 255;
Cr = Cr * 255;
end %akhir fungsi
[Y,Cb,Cr] = RGBkeYCB(9, 16, 250)
hasil konversi RGB ke YCB dengan angka
Y = 40.583
Cb = 118.18
Cr = -22.527
perintah untuk melihat konversi dengan citra
=======================================
img = imread('C:\Image\an.jpg');
[Y,Cb,Cr] = RGBkeYCB(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([Y,Cb,Cr])
Salah satu hasilnya adalah :
Terima Kasih dan Semangat Belajar
Tidak ada komentar:
Posting Komentar