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

 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.

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 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. 14 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’);
    >>

    • 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

  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

  4. Bobby Fajar Christian

    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 🙂

  5. bw = im2bw(S,.25);
    angka 25 diperoleh dari mana ya pak, angka tersebut melambangkan apa

  6. 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?

  1. Pingback: Citra RGB – PENGOLAHAN CITRA

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 )

Facebook photo

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

Connecting to %s

%d bloggers like this: