Ekstraksi Ciri Nilai RGB
Ekstraksi ciri merupakan tahapan mengekstrak informasi yang terkandung dalam suatu objek dalam citra digital. Informasi tersebut digunakan untuk membedakan antara objek yang satu dengan objek lainnya pada tahapan pengenalan atau identifikasi citra.
Berikut ini merupakan contoh aplikasi pengolahan citra untuk melakukan proses ekstraksi ciri warna berdasarkan nilai rata-rata RGB pada masing-masing objek yang tersegmentasi.
Langkah-langkah pengolahan citra dan pemrograman MATLAB yang dilakukan adalah sebagai berikut:
1. Membaca citra RGB asli
clc; clear; close all; I = imread('balls.jpg'); figure, imshow(I);
J = rgb2hsv(I); figure, imshow(J);
3. Mengekstrak masing-masing komponen HSV yaitu komponen Hue, komponen Saturation, dan komponen Value
H = J(:,:,1); S = J(:,:,2); V = J(:,:,3); figure, imshow(H); figure, imshow(S); figure, imshow(V);
Komponen H (Hue)
Komponen S (Saturation)
Komponen V (Value)
4. Melakukan thresholding terhadap komponen S (Saturation) dan operasi morfologi berupa area opening sehingga diperoleh citra biner hasil segmentasi
bw = im2bw(S,.25); bw = bwareaopen(bw,50); figure, imshow(bw);
5. Menampilkan citra RGB hasil segmentasi
R = I(:,:,1); G = I(:,:,2); B = I(:,:,3); R(~bw) = 0; B(~bw) = 0; G(~bw) = 0; RGB = cat(3,R,G,B); figure, imshow(RGB);
6. Melakukan pelabelan terhadap masing-masing objek hasil segmentasi
[L,num] = bwlabel(bw);
Label 1
Label 2
Label 3
Label 4
7. Melakukan ekstraksi ciri nilai rata-rata RGB pada masing-masing objek yang terlabeli
RGB2 = I; 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); Red = 0; Green = 0; Blue = 0; for m = 1:numel(a) Red = Red+double(R(a(m),b(m))); Green = Green+double(G(a(m),b(m))); Blue = Blue+double(B(a(m),b(m))); end Red = Red/numel(a); Green = Green/numel(a); Blue = Blue/numel(a); [B,~] = bwboundaries(bw2,'noholes'); boundary = B{1}; position = [boundary(1,2)-40,boundary(1,1)-160;boundary(1,2)-40,boundary(1,1)-80;... boundary(1,2)-40,boundary(1,1);boundary(1,2)-40,boundary(1,1)+80]; box_color = {'yellow','red','green','blue'}; text_str = cell(4,1); text_str{1} = ['Label: ' num2str(n)]; text_str{2} = ['Red: ' num2str(Red,'%0.2f')]; text_str{3} = ['Green: ' num2str(Green,'%0.2f')]; text_str{4} = ['Blue: ' num2str(Blue,'%0.2f')]; RGB2 = insertText(RGB2,position,text_str,'FontSize',40,'BoxColor',box_color,'BoxOpacity',0.8,'TextColor','white'); figure, imshow(RGB2); end
Label 1
Label 2
Label 3
Label 4
8. Menampilkan hasil ekstraksi ciri nilai RGB untuk semua objek
Hasil pengolahan citra tersebut menunjukkan nilai parameter ciri warna RGB pada masing-masing objek yang tersegmentasi. Nilai tersebut dapat digunakan lebih lanjut dalam tahapan pengenalan pola.
File source code lengkap beserta citra yang digunakan pada pemrograman di atas dapat diperoleh melalui halaman berikut ini: Source Code MATLAB
Posted on July 26, 2017, in Pengenalan Pola, Pengolahan Citra and tagged apa yang dimaksud dengan citra digital, cara melakukan ekstraksi ciri citra, cara mengubah citra grayscale menjadi biner, citra adalah, citra biner, citra digital adalah, citra hsv, definisi citra, definisi citra digital, digital image processing, ekstraksi ciri adalah, ekstraksi ciri citra, ekstraksi ciri citra adalah, ekstraksi ciri nilai rgb, image processing, jenis-jenis ekstraksi ciri citra, macam-macam ekstraksi ciri citra, nilai rgb, nilai threshold, pemrograman matlab pengolahan citra, pemrograman matlab sederhana, pengertian citra biner, pengertian citra grayscale, pengertian citra rgb, Pengolahan Citra Digital, pengolahan citra digital adalah, ruang warna citra hsv, ruang warna citra rgb, segmentasi citra, thresholding citra, thresholding citra digital. Bookmark the permalink. 14 Comments.
mas ini kok error ya? apa ada yang salah
??? Undefined function or method ‘insertText’ for input arguments of
type ‘cell’.
Error in ==> ekstrasi at 73
RGB2 =
insertText(RGB2,position,text_str,’FontSize’,40,’BoxColor’,box_color,’BoxOpacity’,0.8,’TextColor’,’white’);
>>
mas ini kok error ya? apa ada yang salah
??? Undefined function or method ‘insertText’ for input arguments of
type ‘cell’.
Error in ==> ekstrasi at 73
RGB2 =
insertText(RGB2,position,text_str,’FontSize’,40,’BoxColor’,box_color,’BoxOpacity’,0.8,’TextColor’,’white’);
>>
koding tersebut dapat dijalankan minimal menggunakan matlab r2015b
assalamualaikum mas adi. saya mau bertanya kalau source code untuk looping ekstraksi citra rgb gimana ya. soalnya citra yang mau di ekstraksi banyak. Mohon bantuannya terimakasih.
waalaikumsalam rachmad
proses looping bisa dilakukan menggunakan perulangan for atau while
assalamualaikum mas adi. saya mau bertanya kalau source code untuk looping ekstraksi citra rgb untuk mendapatkan nilai rgb nya gimana ya. soalnya citra yang mau di ekstraksi banyak. Mohon bantuannya terimakasih
Ekstraksi warna di postingan ini sama yang post link ini https://pemrogramanmatlab.com/2016/11/01/ekstraksi-ciri-citra-rgb/ bedanya apa mas kalau dari segi perhitungan? Terima Kasih Mas Adi 🙂
pada prinsipnya sama saja
bw = im2bw(S,.25);
angka 25 diperoleh dari mana ya pak, angka tersebut melambangkan apa
Nilai threshold tersebut diperoleh dengan cara trial and error
Assalamualaikum warahmatullahi wabarokatuh Kak, apakah bisa menghitung nilai akurasi dari data latih maupun data uji, tanpa melakukan konversi Citra Gray ke Biary, hanya dengan menggunakan nilai rata-rata dari citra arGB?
Waalaikumsalam
Bisa dicoba dilakukan
Waalaikumsalam
Bisa, untuk ekstraksi ciri nilai RGB, tidak harus dilakukan segmentasi, bisa langsung dilakukan dari citra asli tanpa konversi ke citra grayscale dan citra biner
Pingback: Citra RGB – PENGOLAHAN CITRA