Mendeteksi Objek yang Berbentuk Lingkaran


Bentuk merupakan salah satu ciri yang dapat diekstrak dari suatu objek. Ciri ini dapat digunakan untuk membedakan antara objek yang satu dengan lainnya. Berikut ini merupakan contoh pengolahan citra untuk mendeteksi objek yang berbentuk lingkaran. Salah satu parameter yang dapat digunakan untuk mendefinisikan bentuk lingkaran adalah metric. Metric merupakan perbandingan antara luas dan keliling suatu objek. Nilai metric berkisar antara 0 s.d 1. Objek yang berbentuk lingkaran, nilai metric nya mendekati angka satu. Materi lebih lanjut mengenai nilai metric dapat dilihat pada halaman berikut ini: Ekstraksi Ciri

Langkah-langkah pengolahan citra dan pemrograman MATLAB yang dilakukan untuk mendeteksi objek yang berbentuk lingkaran adalah:

1. Membaca citra RGB asli

clc; clear; close all;
I = imread('shape object.jpg');
figure, imshow(I);

2. Mengkonversi ruang warna citra yang semula berada pada ruang warna RGB menjadi ruang warna YCbCr

YCbCr = rgb2ycbcr(I);
figure, imshow(YCbCr);

3. Mengekstrak masing-masing komponen citra YCbCr

Y = YCbCr(:,:,1);
Cb = YCbCr(:,:,2);
Cr = YCbCr(:,:,3);
figure, imshow(Y);
figure, imshow(Cb);
figure, imshow(Cr);

Komponen Y

Komponen Cb

Komponen Cr

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

bw = im2bw(Y,.8);
figure, imshow(bw);

5. Melakukan komplemen citra untuk menjadikan objek berwarna putih dan background berwarna hitam

bw = imcomplement(bw);
figure, imshow(bw);

6. Melakukan operasi morfologi berupa area opening untuk menghilangkan noise

bw = bwareaopen(bw,50);
figure, imshow(bw);

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

8. Melakukan pelabelan terhadap masing-masing objek yang tersegmentasi kemudian menghitung nilai metric masing-masing objek yang terlabeli

[B,L] = bwboundaries(bw,'noholes');
stats = regionprops(L,'All');
 
bw2 = zeros(size(I,1),size(I,2));
RGB2 = I;
RGB3 = I;
 
for k = 1:length(B)
    boundary = B{k};
    delta_sq = diff(boundary).^2;
    perimeter = stats(k).Perimeter;
    area = stats(k).Area;
    metric = 4*pi*area/perimeter^2;
    bbox = stats(k).BoundingBox;
    eccentricity = stats(k).Eccentricity;
    MajorAxisLength = stats(k).MajorAxisLength;
    MinorAxisLength = stats(k).MinorAxisLength;
    d = MajorAxisLength/MinorAxisLength;
    position = [boundary(1,2),boundary(1,1)];
     
    RGB2 = insertText(RGB2,position,num2str(metric),'FontSize',20,'BoxOpacity',0.8,'TextColor','white');
     
    if metric >0.9 
        bw2(L==k) = 1;
        RGB3 = insertObjectAnnotation(RGB3,'rectangle',bbox,'lingkaran','FontSize',20,'LineWidth',4);
    end
end
 
R = I(:,:,1);
G = I(:,:,2);
B = I(:,:,3);
 
R(~bw2) = 0;
G(~bw2) = 0;
B(~bw2) = 0;
RGB = cat(3,R,G,B);
 
figure, imshow(RGB);
figure, imshow(RGB2);
figure, imshow(RGB3);

9. Mendefinisikan bahwa objek yang berbentuk lingkaran adalah objek yang memiliki nilai metric lebih dari 0,9 (mendekati 1)

10. Menampilkan bounding box hasil deteksi objek yang berbentuk lingkaran

Hasil pengolahan citra tersebut menunjukkan bahwa metode yang digunakan dapat mendeteksi objek yang berbentuk lingkaran dengan cukup baik.

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

  1. Mas. tolong bantuannya mas.
    kalau ingin mengambil objek Lidah, cara untuk mengambil objek lidah saja caranya gmn mas.
    tolong mas bantuannya mas.

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: