Halloo semua... pada kesempatan kali ini kita akan membahas bagaimana caranya mendeteksi objek berdasarkan warnanya menggunakan MATLAB. Untuk menjalankannya, kita harus memiliki Image Processing Toolbox pada MATLAB. Namun, jika kita ingin mengambil gambar langsung dari webcam, kita harus memiliki Image Acquisition Toolbox. Pembahasan mengenai penggunaan webcam telah kita bahas sebelumnya
disini.Untuk pembahasan kali ini, kita akan menggunakan file citra yang sudah kita buat sebelumnya, bukan hasil tangkapan kamera.
Walaupun sederhana, konsep deteksi warna yang akan kita bahas kali ini dapat menjadi dasar dari robot vision, yaitu robot yang menggunakan sensor visi (kamera) dalam operasinya. Nah, bagimana langkah-langkahnya? Mari kita simak uraiannya, sebagai berikut:
Pertama, buatlah sendiri gambar kita, misalnya di program Paint (pada OS Windows). Misalnya gambar kita adalah kumpulan beberapa objek dengan warna dan bentuk yang berbeda, seperti berikut:
Pada Gambar di atas, kita akan mencoba mendeteksi warna merah (murni merah), yaitu objek yang berbentuk bintang. Pastikan bahwa ini murni warna merah. Caranya, jika kita menggunakan Paint (atau software lainnya), Pastikan nilai RGB-nya. Dalam hal ini, kita nol-kan komponen G dan B, dan buatlah R memiliki nilai penuh (misal 255, jika menggunakan 8-bit). Amati gambar di bawah ini:
Selanjutnya,kita simpan gambar kita, misalnya dengan nama
warnawarni.bmp. Kita simpan di folder
default MATLAB, yaitu di
Documents\MATLAB.
Jalankan program MATLAB. Buatlah
script baru, misalnya kita beri nama
deteksiMerah.m, sebagai berikut:
function [merah]=deteksiMerah(gambar)
[m,n,~]=size(gambar);
merah=zeros(m,n);
for i=1:m
for j=1:n
if(gambar(i,j,1)==255 && gambar(i,j,2)==0 && gambar(i,j,3)==0)
merah(i,j)=1;
end
end
end
Selanjutnya, panggil gambar
warnawarni.bmp pada
Command Window dengan perintah
imread, dan tampilkan hasilnya menggunakan perintah
imshow, sebagai berikut:
>> I = imread('warnawarni.bmp');
>> imshow(I)
Kemudian, jalankan fungsi kita yaitu
deteksiMerah.m dan amati hasilnya.
>> ObjekMerah = deteksiMerah(I);
>> imshow(ObjekMerah);
Yuppp... menarik, bukan? selanjutnya kita bisa mencoba mendeteksi warna lainnya, dengan cara mengatur nilai pada sintaks:
if(gambar(i,j,1)==255 && gambar(i,j,2)==0 && gambar(i,j,3)==0)
Misalnya, untuk mendeteksi objek berwarna
hijau saja, kita bisa gunakan sintaks, sebagai berikut:
if(gambar(i,j,1)==0 && gambar(i,j,2)==255 && gambar(i,j,3)==0)
Kita juga bisa kombinasikan warna apapun yang kita suka untuk mendetaksi suatu benda. Yuppp.. demikian pembahasan kita kali ini... semoga bermanfaat.