MEMBUAT FUNGSI DETEKSI
WARNA RGB SEMPURNA
Hal yang harus dipahami terlebih dahulu sebelum membahas hal ini
adalah tentang apa itu fungsi? Fungsi seperti yang diketahui, dibuat untuk mengorganisasi
kode program agar efisien dan membuat proses debugging menjadi lebih
mudah. Sekumpulan statement didalam fungsi bisa dieksekusi dan ketika
diperlukan dapat dipanggil tanpa menulis ulang koding didalam fungsi tersebut.
Data yang diperlukan didalam fungsi bisa dilalui sebagai argumen dan kemudian
nilai hasilnya akan dikembalikan. Fungsi disimpan sebagai m-file dengan nama
yang sama dengan nama fungsi tersebut.
Pengujian Program
Deteksi Warna RGB
Misalkan kita akan menguji file gambar 2.jpg berikut:
Gambar 1. File gambar 2.jpg sebagai file yang di uji
Fungsi Deteksi Warna Merah
Pada contoh berikut kita akan membuat fungsi yang mengambil
masukan citra color dan mengembalikan hasilnya menjadi citra
biner dimana pixel – pixel merah akan diganti dengan warna putih dan sisanya
(yang tidak berpixel merah) akan diganti dengan warna hitam.
Proyek
17. Deteksi Warna Merah
function
[binmerah, num]=merah(im)
[m,n,t]=size(im);
binmerah=zeros(m,n);
num=0;
for
i=1:m
for
j=1:n
if(im(i,j,1)==255
&& im(i,j,2)==0 && im(i,j,3)==0)
%
Komponen hijau dan biru bernilai nol dan merah bernilai 255
binmerah(i,j)=1;
num=num+1;
end
end
end
Program Pengujian Deteksi Merah
%membaca
file citra
I=imread('gambar
2.jpg');
[img,
n]=merah(I); % memanggil fungsi merah
n
imshow(I),
title('GAMBAR BERWARNA RGB');
figure,
imshow(img), title('DETEKSI WARNA MERAH');
Output Pengujian Deteksi Merah
(a)
(b)
Gambar 2. Output deteksi warna merah
Fungsi Deteksi Warna
Hijau
Dengan logika yang sama seperti fungsi merah, pada fungsi
hijau dimana pixel – pixel hijau akan diganti dengan warna putih dan
sisanya (yang tidak berpixel hijau) akan diganti dengan warna hitam.
Proyek
18. Deteksi Warna Hijau
function
[binhijau, num]=hijau(im)
[m,n,t]=size(im);
binhijau=zeros(m,n);
num=0;
for
i=1:m
for
j=1:n
if(im(i,j,1)==0
&& im(i,j,2)==255 && im(i,j,3)==0)
%
Komponen merah dan biru bernilai nol dan hijau bernilai 255
binhijau(i,j)=1;
num=num+1;
end
end
end
Program Pengujian Deteksi Hijau
%membaca
file citra
I=imread('gambar
2.jpg');
[img,
n]=hijau(I); % memanggil fungsi hijau
n
%menampilkan
bagian warna yang hijau
imshow(I),
title('GAMBAR BERWARNA RGB');
figure,
imshow(img), title('DETEKSI WARNA HIJAU');
Output Pengujian Deteksi Hijau
(a)
(b)
Gambar 3. Output deteksi warna hijau
Fungsi Deteksi Warna
Biru
Dengan logika yang sama seperti fungsi merah, pada fungsi
biru dimana pixel – pixel biru akan diganti dengan warna putih dan sisanya
(yang tidak berpixel biru) akan diganti dengan warna hitam.
Proyek
19. Deteksi Warna Biru
function
[binbiru, num]=biru(im)
[m,n,t]=size(im);
binbiru=zeros(m,n);
num=0;
for
i=1:m
for
j=1:n
if(im(i,j,1)==0
&& im(i,j,2)==0 && im(i,j,3)==255)
%
Komponen merah dan hijau bernilai nol dan biru bernilai 255
binbiru(i,j)=1;
num=num+1;
end
end
end
Program Pengujian Deteksi Biru
%membaca
file citra
I=imread('gambar
2.jpg');
[img,
n]=biru(I); % memanggil fungsi biru
n
%menampilkan
bagian warna yang biru
imshow(I),
title('GAMBAR BERWARNA RGB');
figure,
imshow(img), title('DETEKSI WARNA BIRU');
Output Pengujian Deteksi Biru
(a)
(b)
Gambar 4. Output deteksi warna biru
Fungsi Deteksi Warna Kuning
Warna kuning merupakan warna yang tidak berdiri
sendiri, warna kuning dibentuk dari warna dasar merah dan hijau. Kemudian warna
kuning akan diganti dengan warna putih dan sisanya
(yang tidak kuning) akan diganti dengan warna hitam.
Proyek
20. Deteksi Warna Kuning
function [binkuning, num]=kuning(im)
[m,n,t]=size(im);
binkuning=zeros(m,n); num=0;
for i=1:m
for j=1:n
if(im(i,j,1)==255 && im(i,j,2)==255
&& im(i,j,3)==0)
% Komponen biru bernilai nol dan merah dan hijau bernilai 255
binkuning(i,j)=1;
num=num+1;
end
end
end
Program Pengujian Deteksi Kuning
%membaca file citra
I=imread('gambar 2.jpg');
[img, n]=kuning(I); % memanggil fungsi kuning
n
%menampilkan bagian warna yang kuning
imshow(I), title('GAMBAR BERWARNA RGB');
figure, imshow(img), title('DETEKSI WARNA KUNING');
Output Pengujian Deteksi Kuning
(a)
(b)
Gambar 5. Output deteksi warna kuning
Fungsi Deteksi Warna Magenta
Warna magenta merupakan warna yang tidak berdiri
sendiri, warna magenta dibentuk dari warna dasar merah dan biru. Kemudian warna
magenta akan diganti dengan warna putih dan sisanya
(yang tidak magenta) akan diganti dengan warna hitam.
Proyek
21. Deteksi Warna Magenta
function [binmagenta, num]=magenta(im)
[m,n,t]=size(im);
binmagenta=zeros(m,n); num=0;
for i=1:m
for j=1:n
if(im(i,j,1)==255 && im(i,j,2)==0
&& im(i,j,3)==255)
% Komponen hijau bernilai nol dan biru dan merah bernilai 255
binmagenta(i,j)=1;
num=num+1;
end
end
end
Program Pengujian Deteksi Magenta
%membaca file citra
I=imread('gambar 2.jpg');
[img, n]=magenta(I); % memanggil fungsi magenta
n
%menampilkan bagian warna yang magenta
imshow(I), title('GAMBAR BERWARNA RGB');
figure, imshow(img), title('DETEKSI WARNA MAGENTA');
Output Pengujian Deteksi Magenta
(a)
(b)
Gambar 6. Output deteksi warna magenta
Fungsi Deteksi Warna Cyan
Seperti kuning dan magenta, warna cyan merupakan
warna yang tidak berdiri sendiri, warna cyan dibentuk dari warna dasar hijau
dan biru. Kemudian warna cyan akan diganti dengan warna
putih dan sisanya (yang tidak cyan) akan diganti dengan warna hitam.
Proyek
22. Deteksi Warna Cyan
function [bincyan, num]=cyan(im)
[m,n,t]=size(im);
bincyan=zeros(m,n); num=0;
for i=1:m
for j=1:n
if(im(i,j,1)==0 && im(i,j,2)==255
&& im(i,j,3)==255)
% Komponen merah bernilai nol dan hijau dan biru bernilai 255
bincyan(i,j)=1;
num=num+1;
end
end
end
Program Pengujian Deteksi Cyan
%membaca file citra
I=imread('gambar 2.jpg');
[img, n]=cyan(I); % memanggil fungsi cyan
n
%menampilkan bagian warna yang cyan
imshow(I), title('GAMBAR BERWARNA RGB');
figure, imshow(img), title('DETEKSI WARNA CYAN');
Output Pengujian Deteksi Cyan
(a)
(b)
Gambar 7. Output deteksi warna cyan
Fungsi Deteksi Warna Putih
Warna putih merupakan warna kombinasi dari merah,
hijau, dan biru. Kemudian warna tidak putih akan
diganti dengan warna hitam.
Proyek
23. Deteksi Warna Putih
function [binputih, num]=putih(im)
[m,n,t]=size(im);
binputih=zeros(m,n); num=0;
for i=1:m
for j=1:n
if(im(i,j,1)==255 && im(i,j,2)==255
&& im(i,j,3)==255)
% Komponen komponen bernilai 255
binputih(i,j)=1;
num=num+1;
end
end
end
Program Pengujian Deteksi Putih
%membaca file citra
I=imread('gambar 2.jpg');
[img, n]=putih(I); % memanggil fungsi putih
n
%menampilkan bagian warna yang putih
imshow(I), title('GAMBAR BERWARNA RGB');
figure, imshow(img), title('DETEKSI WARNA PUTIH');
Output Pengujian Deteksi Putih
(a)
(b)
Gambar 8. Output deteksi warna putih
Fungsi Deteksi Warna Hitam
Warna hitam merupakan warna ketika semua pixel
warna merah, hijau, dan biru bernilai nol. Kemudian warna yang terdeteksi hitam
akan diubah menjadi pputih, sebaliknya warna tidak hitam akan diganti dengan warna hitam.
Proyek
24. Deteksi Warna Hitam
function [binhitam, num]=hitam(im)
[m,n,t]=size(im);
binhitam=zeros(m,n); num=0;
for i=1:m
for j=1:n
if(im(i,j,1)==0 && im(i,j,2)==0
&& im(i,j,3)==0)
% Komponen komponen bernilai 0
binhitam(i,j)=1;
num=num+1;
end
end
end
Program Pengujian Deteksi Hitam
%membaca file citra
I=imread('gambar 2.jpg');
[img, n]=hitam(I); % memanggil fungsi hitam
n
%menampilkan bagian warna yang putih
imshow(I), title('GAMBAR BERWARNA RGB');
figure, imshow(img), title('DETEKSI WARNA HITAM');
Output Pengujian Deteksi Hitam
(a)
(b)
Gambar 9. Output deteksi warna hitam
Copyright 2013@ Mada Sanjaya WS, Ph.D