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 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);

 2. Mengkonversi ruang warna citra yang semula berada pada ruang warna RGB (Red, Green, Blue) menjadi HSV (Hue, Saturation, Value)
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.

Source code dan citra yang digunakan pada pemrograman di atas dapat diunduh melalui halaman berikut ini: Source Code MATLAB

Posted on July 26, 2017, in Pengenalan Pola, Pengolahan Citra and tagged , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. 7 Comments.

  1. 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’);
    >>

  2. 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.

  3. 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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: