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)
>> 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)
2 komentar:
ternyata harus bener bener di bikin dulu di paint, kalo asal save gambar dg nilai bukan 255 ndak bisa :) terima kasih untuk ilmunya kakak.. moga sukses selalu
Posting Komentar