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 aplikasi pengolahan citra untuk mendeteksi objek yang berbentuk lingkaran. Salah satu parameter yang dapat digunakan untuk mendefinisikan bentuk lingkaran adalah metric. Metric merupakan nilai 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. Kita dapat mengembangkan metode pengolahan citra digital terbaru dalam proses deteksi objek sehingga diperoleh hasil yang lebih baik.
File source code lengkap beserta citra yang digunakan pada pemrograman di atas dapat diperoleh melalui halaman berikut ini: Source Code MATLAB
Penggunaan nilai metric untuk mengklasifikasikan objek pada suatu citra dapat dilihat pada video tutorial berikut ini:

Posted on July 26, 2017, in Pengenalan Pola, Pengolahan Citra and tagged citra adalah, citra biner, citra digital adalah, citra grayscale, citra RGB, contoh pengolahan citra sederhana, dasar-dasar pengolahan citra digital, definisi citra, definisi thresholding, deteksi lingkaran, deteksi objek lingkaran, digital image processing, ekstraksi ciri, ekstraksi ciri citra, image processing, koding matlab deteksi objek, nilai threshold, operasi morfologi, pengertian citra rgb, pengolahan citra, Pengolahan Citra Digital, pengolahan citra digital adalah, pengolahan citra digital sederhana, pengolahan citra sederhana, ruang warna citra rgb, ruang warna citra ycbcr, segmentasi citra, source code matlab sederhana, thresholding adalah, thresholding citra. Bookmark the permalink. 16 Comments.
Mas. tolong bantuannya mas.
kalau ingin mengambil objek Lidah, cara untuk mengambil objek lidah saja caranya gmn mas.
tolong mas bantuannya mas.
Bisa dicoba dulu menggunakan metode segmentasi warna
Atau bisa dicoba dg metode thresholding
mas ini kalo boleh tau menggukan metode apa ya mas?
pada materi di atas, proses deteksi objek yang berbentuk lingkaran dilakukan menggunakan parameter metric
Undefined function ‘insertText’ for input, kenapa itu ya mas ?
Bisa dicoba kembali anggit
Koding di atas dapat dijalankan dg baik
Mas, bagaimana caranya nilai hasil dari perhitungan RGB di konverikan ke dalam arti warna ?
bisa menggunakan software photoshop atau corel draw
R = I(:,:,1);
G = I(:,:,2);
B = I(:,:,3);
R(~bw) = 0;
G(~bw) = 0;
B(~bw) = 0;
Mas bisa terangkan perhitungan manual source code diatas?
koding tersebut digunakan untuk mengubah nilai background menjadi nol
punten mau nanya, itu yg bagian
bw = im2bw(Y,.8);
kenapa menggunakan 8 ya?
makasih sebelumnya
bisa dicoba divariasikan dengan nilai lain
boleh minta pencerahan.
saya coba cooding diatas…
saya jalankan di matlab R2015..
yang tampil cuma sampai poin 7. Menampilkan citra RGB hasil segmentasi
Source code di atas tidak bisa dijalankan jika hanya dicopy paste saja
Source code lengkap bisa diperoleh melalui bukalapak atau tokopedia
Siang Pak, izin bertanya kenapa saat saya masukin ‘imshow’ keluar warning kayak gini ya pak?
The function “adjustXYData” was closed with
an ‘end’, but at least one other function
definition was not. To avoid confusion when
using nested functions, it is illegal to use
both conventions in the same file.
Source code lengkap bisa dibeli di tokopedia sehingga bisa langsung dirunning tanpa error