Ekstraksi Ciri Bentuk dan Ukuran


Ciri yang dapat diekstrak dari suatu objek dalam citra antara lain adalah warna, bentuk, ukuran, dan tekstur. Ciri tersebut digunakan sebagai parameter untuk membedakan antara objek satu dengan objek yang lain.

Berikut ini merupakan contoh pengolahan citra digital untuk melakukan proses ekstraksi ciri bentuk dan ukuran pada citra RGB. Parameter yang digunakan untuk mewakili ciri bentuk adalah metric dan eccentricity, sedangkan parameter yang mewakili ciri ukuran adalah luas dan keliling.

Materi mengenai definisi masing-masing parameter ciri bentuk dan ukuran dapat dilihat pada halaman berikut ini: Ekstraksi Ciri

Langkah-langkah pengolahan citra dan pemrograman MATLAB yang dilakukan adalah sebagai berikut:

1. Membaca citra RGB asli

clc; clear; close all; warning off all;
 
I = imread('fruits.jpg');
figure, imshow(I);

2. Mengkonversi ruang warna citra yang semula berada pada ruang warna RGB menjadi HSV (Hue, Saturation, Value)

J = rgb2hsv(I);
figure,imshow(J);

3. Mengekstrak masing-masing komponen citra 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 Hue

Komponen Saturation

Komponen Value

4. Melakukan thresholding terhadap komponen Saturation sehingga diperoleh citra biner hasil segmentasi

bw = im2bw(S,.25);
figure,imshow(bw);

5. Melakukan operasi morfologi berupa filling holes dan area opening untuk menyempurnakan citra hasil segmentasi

bw = imfill(bw,'holes');
bw = bwareaopen(bw,100);
figure,imshow(bw);

6. Memvisualisasikan hasil segmentasi pada citra RGB dalam bentuk bounding box

[bw,num] = bwlabel(bw);
bbox = zeros(num,4);
RGB4 = I;
 
for k = 1:num
    bw2 = bw==k;
    [B,L] = bwboundaries(bw2,'noholes');
    stats = regionprops(L,'All');
    perimeter = cat(1,stats.Perimeter);
    area = cat(1,stats.Area);
    eccentricity = cat(1,stats.Eccentricity);
    metric = 4*pi*area/perimeter^2;
    bbox(k,:) = cat(1,stats.BoundingBox);
     
    boundary = B{1};
    position = [boundary(1,2),boundary(1,1)-60;boundary(1,2),boundary(1,1)-30;...
        boundary(1,2),boundary(1,1);boundary(1,2),boundary(1,1)+30;boundary(1,2),boundary(1,1)+60];
    box_color = {'yellow','red','green','blue','cyan'};
     
    text_str = cell(5,1);
    text_str{1} = ['Label: ' num2str(k)];
    text_str{2} = ['Area: ' num2str(area,'%0.2f')];
    text_str{3} = ['Perimeter: ' num2str(perimeter,'%0.2f')];
    text_str{4} = ['Metric: ' num2str(metric,'%0.2f')];
    text_str{5} = ['Eccentricity: ' num2str(eccentricity,'%0.2f')];
     
    RGB3 = insertShape(RGB4, 'Rectangle', bbox(k,:), 'LineWidth', 4);
    RGB4 = insertText(RGB3,position,text_str,'FontSize',16,'BoxColor',box_color,'BoxOpacity',0.8,'TextColor','white');
     
    figure, imshow(RGB3);
    figure, imshow(RGB4);    
end
 
RGB5 = insertShape(I, 'Rectangle', bbox, 'LineWidth', 4);
figure, imshow(RGB5);

7. Melakukan pelabelan dan ekstraksi ciri terhadap masing-masing objek yang tersegmentasi

Label 1

Label 2

Label 3

Label 4

8. Menampilkan hasil ekstraksi ciri untuk semua objek yang tersegmentasi

Hasil pengolahan citra tersebut menunjukkan nilai parameter ciri bentuk dan ukuran citra. Hasil dari ekstraksi ciri ini 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. Leave a comment.

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: