Pengenalan Warna Objek
Komponen Hue dari citra HSV (Hue, Saturation, Value) merupakan suatu komponen yang merepresentasikan warna dari panjang gelombang cahaya tampak (merah, jingga, kuning, hijau, biru, ungu). Oleh karena itu, komponen ini dapat digunakan sebagai acuan untuk melakukan pengenalan warna suatu objek pada citra digital.
Berikut ini merupakan contoh pengolahan citra digital untuk melakukan pengenalan warna suatu objek berdasarkan komponen Hue.
Langkah-langkah pengolahan citra dan pemrograman MATLAB yang dilakukan adalah sebagai berikut:
1. Membaca citra RGB asli
clc; clear; close all; I = imread('stabilo.jpg'); figure, imshow(I);
2. Mengkonversi ruang warna citra yang semula berada pada ruang warna RGB menjadi HSV (Hue, Saturation, Value)
HSV = rgb2hsv(I); figure, imshow(HSV);
3. Mengekstrak masing-masing komponen citra HSV yaitu komponen Hue, komponen Saturation, dan komponen Value
H = HSV(:,:,1); S = HSV(:,:,2); V = HSV(:,:,3); figure, imshow(H); figure, imshow(S); figure, imshow(V);
Komponen Hue
Komponen Saturation
Komponen Value
4. Melakukan thresholding terhadap komponen Saturation sehingga diperoleh citra biner hasil segmentasi
bw = im2bw(S,.4); figure, imshow(bw);
5. Melakukan operasi morfologi berupa filling holes dan opening untuk menyempurnakan citra biner hasil segmentasi
bw = imfill(bw,'holes'); bw = bwareaopen(bw,1000); str = strel('square',12); bw = imopen(bw,str); figure, imshow(bw);
6. Menampilkan citra RGB hasil segmentasi
R = I(:,:,1); G = I(:,:,2); B = I(:,:,3); R(~bw) = 0; G(~bw) = 0; B(~bw) = 0; RGB = cat(3,R,G,B); figure, imshow(RGB);
7. Melakukan pelabelan terhadap masing-masing objek hasil segmentasi
[L,num] = bwlabel(bw);
Label 1
Label 2
Label 3
Label 4
Label 5
Label 6
8. Menghitung rata-rata nilai Hue pada masing-masing objek yang terlabeli dan mengklasifikasikan nilai tersebut ke dalam kelas warna yang telah ditentukan
for n = 1:num bw2 = L==n; R = I(:,:,1); G = I(:,:,2); B = I(:,:,3); R(~bw2) = 0; G(~bw2) = 0; B(~bw2) = 0; RGB = cat(3,R,G,B); [a,b] = find(bw2==1); Hue = 0; for m = 1:numel(a) Hue = Hue+double(H(a(m),b(m))); end Hue = Hue/numel(a); if Hue < 11/255 % merah Warna = 'merah'; elseif Hue < 32/255 % jingga Warna = 'jingga'; elseif Hue < 54/255 % kuning Warna = 'kuning'; elseif Hue < 116/255 % hijau Warna = 'hijau'; elseif Hue < 141/255 % cyan Warna = 'cyan'; elseif Hue < 185/255 % biru Warna = 'biru'; elseif Hue < 202/255 % ungu Warna = 'ungu'; elseif Hue < 223/255 % magenta Warna = 'magenta'; elseif Hue < 244/255 % merah muda Warna = 'merah muda'; else Warna = 'merah'; end [B,~] = bwboundaries(bw2,'noholes'); boundary = B{1}; position = [boundary(1,2),boundary(1,1)-80;boundary(1,2),boundary(1,1)-40;... boundary(1,2),boundary(1,1)]; box_color = {'yellow','yellow','yellow'}; text_str = cell(2,1); text_str{1} = ['Label: ' num2str(n)]; text_str{2} = ['Hue: ' num2str(Hue,'%0.2f')]; text_str{3} = ['Warna: ' Warna]; RGB2 = insertText(I,position,text_str,'FontSize',20,'BoxColor',box_color,'BoxOpacity',0.8,'TextColor','white'); figure, imshow(RGB2); end
Label 1
Label 2
Label 3
Label 4
Label 5
Label 6
Hasil pengolahan citra tersebut menunjukkan bahwa metode yang digunakan dapat melakukan pengenalan warna objek dalam citra dengan baik. Warna yang dikenali antara lain adalah warna cyan, hijau, merah muda, jingga, dan kuning.
File source code lengkap beserta citra yang digunakan pada pemrograman di atas dapat diperoleh melalui halaman berikut ini: Source Code MATLAB
Tutorial mengenai deteksi warna berdasarkan komponen hue dan saturation pada citra HSV dapat dilihat pada video berikut ini:

Posted on July 26, 2017, in Pengenalan Pola, Pengolahan Citra and tagged cara melakukan ekstraksi ciri citra, citra adalah, citra biner, citra digital adalah, citra grayscale, citra hsv, citra RGB, contoh program matlab pengolahan citra, contoh program matlab sederhana, dasar-dasar pengolahan citra digital, definisi citra, definisi pengolahan citra digital, digital image processing, ekstraksi ciri, ekstraksi ciri citra, ekstraksi ciri warna, identifikasi warna citra digital, image processing, pengenalan warna citra, pengertian citra biner, pengertian citra grayscale, pengolahan citra, pengolahan citra biner, Pengolahan Citra Digital, pengolahan citra digital adalah, pengolahan citra digital sederhana, pengolahan citra grayscale, program matlab sederhana, ruang warna citra hsv, segmentasi citra, segmentasi warna, thresholding citra, thresholding citra digital. Bookmark the permalink. 21 Comments.
ass mas. saya kan lagi penelitian tentang pengenalan pola tanda tangan pakek support vector machine untuk mengenali identitas pemilik tanda tangan yang saya inputkan. saya cuma bisa input 1 data mahasiswa pada codingny mas.
nah yang mau saya tanyakan bagaimana cara membuat database biodata mahasiswa supaya kalau saya inputkkan gambar tanda tangan mahasiswa lain bisa otomatis mengenali informasi pemilik tanda tangan itu mas
waalaikumsalam chintia putri
materi mengenai support vector machine bisa dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/data-mining-menggunakan-matlab/support-vector-machine-svm-menggunakan-matlab/
nilai yang di dapatkan dari programnya dmna ya yang mengacu untuk mendapatkan nilai dari
if Hue < 11/255 % merah
Warna = 'merah';
elseif Hue < 32/255 % jingga
Warna = 'jingga';
elseif Hue < 54/255 % kuning
Warna = 'kuning';
elseif Hue < 116/255 % hijau
Warna = 'hijau';
elseif Hue < 141/255 % cyan
Warna = 'cyan';
elseif Hue < 185/255 % biru
Warna = 'biru';
elseif Hue < 202/255 % ungu
Warna = 'ungu';
elseif Hue < 223/255 % magenta
Warna = 'magenta';
elseif Hue < 244/255 % merah muda
Warna = 'merah muda';
maksud dari ini apa ya mas?
Hue = Hue+double(H(a(m),b(m)));
dan
Hue = Hue/numel(a);
mas ingin nanya, saya ingin membuat sistem penjejak bola mnggunakan kamera, mengenali bola berwarna putih agar bisa dijejak itu gimana ya?
untuk mengenali bola berwarna putih bisa menggunakan segmentasi warna
materi mengenai segmentasi warna dapat dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/pengenalan-pola-citra-digital-menggunakan-matlab/pola-warna/
saya kurang paham bagaimana cara mengenalinya, apa bisa dengan Background Subtraction dengan Metode Pengurangan Citra Grayscale?
bisa juga dicoba diimplementasikan menggunakan background subtraction
kalo menggunakan video pengurangan yg digunakan apa dengan apa?
cara membedakan gambar dengan objek (bola) dengan gambar tanpa objek pada video gimana?
materi mengenai deteksi objek bergerak pada video dapat dilihat pada halaman berikut ini
https://pemrogramanmatlab.com/2016/07/06/pengolahan-video-untuk-mendeteksi-objek-bergerak-dengan-metode-background-subtraction/
Maaf saya ingin bertanya, kenapa pada program ini yang di thresholding ruang warna saturation? mengapa tidak komponen hue saja? Terimakasih sebelumnya
Metodenya memang trial and error
Pada penelitian ini yg cocok adalah saturasi
Pada penelitian yg lain bisa saja yg cocok adalah hue
Baik, terimakasih banyak.
mas mau tanya kalau satuan nya H derajat, S persen, dan V juga persen itu gimana ya mas, soalnya saya hanya mendapat nilai HSV dari range 0 – 1 saja
Jika nilai hsv dalam range 0 s.d 1 maka dikalikan dengan angka 100 maka akan menjadi persen
Penjelasanya menarik, saya suka dengan artikelnya, salam kenal
mas mau nanya
for n = 1:num
bw2 = L==n;
itu fungsinya untuk apa ya ?
Code tersebut berfungsi untuk melakukan pelabelan
mas saya mau nanya, kalo mau mengubah citra ke grayscale tapi langsung untuk satu folder citra itu gmn ya?
untuk mengkonversi citra rgb ke grayscale dalam satu folder sekaligus bisa dilakukan menggunakan perulangan for
Kk, kalau ukuran tabel nya dibesarkan. Perintah nya apa ya ?