Deteksi Titik Sudut Citra Untuk Identifikasi Bentuk
Proses identifikasi bentuk pada citra digital salah satunya dapat dilakukan dengan cara melakukan deteksi terhadap jumlah garis dan titik sudut penyusun objek dalam citra. Berikut ini merupakan contoh aplikasi pemrograman matlab mengenai deteksi garis dan titik sudut menggunakan transformasi Hough.
Langkah-langkahnya adalah sebagai berikut:
1. Membaca, meresize, dan menampilkan citra
clc; clear; close all; warning off all; % baca & resize citra I = imread('bintang.jpg'); I = imresize(I,0.2); % menampilkan citra asli figure,imshow(I); title('Citra Asli');
2. Melakukan segmentasi citra dengan metode thresholding
% segmentasi citra bw = im2bw(I,.82); bw2 = bwperim(bw); % menampilkan citra hasil segmentasi figure,imshow(bw); title('Hasil Segmentasi');
3. Melakukan deteksi garis menggunakan transformasi hough
% deteksi garis dengan transformasi hough [H,theta,s] = hough(bw2,'Theta',-90:0.5:89); P = houghpeaks(H,100,'threshold',ceil(0.3*max(H(:)))); lines = houghlines(bw2,theta,s,P,'FillGap',10,'MinLength',2); % menampilkan citra hasil deteksi garis figure,imshow(I); title('Hasil Deteksi Garis'); hold on xy2 = []; for k = 1:length(lines) xy = [lines(k).point1; lines(k).point2]; xy2 = [xy2;xy]; plot(xy(:,1),xy(:,2),'LineWidth',5,'Color','y'); end hold off
4. Melakukan deteksi titik sudut
% deteksi titik sudut xy3 = sortrows(xy2); for k = 1:length(lines) bbox = xy3(k*2,:)-10; I = insertText(I,bbox, num2str(k),'FontSize',20); end % menampilkan citra hasil deteksi titik sudut figure, imshow(I); title('Hasil Deteksi Titik Sudut');
Hasil deteksi garis dan titik sudut pada citra yang lain ditunjukkan pada tabel berikut ini
No | Bentuk | Deteksi Garis | Deteksi Titik Sudut |
1 | Segi Tiga | ![]() |
![]() |
2 | Segi Lima | ![]() |
![]() |
3 | Segi Enam | ![]() |
![]() |
4 | Persegi | ![]() |
![]() |
5 | Belah Ketupat | ![]() |
![]() |
File source code lengkap beserta citra pada pemrograman di atas dapat diperoleh melalui halaman berikut ini: Source Code
Posted on July 8, 2018, in Pengenalan Pola, Pengolahan Citra and tagged deteksi bentuk menggunakan matlab, deteksi bentuk menggunakan transformasi hough, deteksi garis menggunakan transformasi hough, identifikasi bentuk menggunakan transformasi hough, pemrograman matlab, Pengolahan Citra Digital, segmentasi citra menggunakan thresholding, transformasi hough menggunakan matlab. Bookmark the permalink. 9 Comments.
mas adi, untuk pelatihan dan pengujian jst supaya akurasinya bisa tinggi bgmana ??
Bisa memvariasikan parameter2 yg mempengaruhi performansi jst seperti jumlah neuron, jumlah hidden layer, jenis fungsi aktivasi, learning rate, error goal, dan jumlah epoch
Jika parameter2 tsb sdh divariasikan dan akurasi masih rendah maka perlu diperiksa kembali metode ekstraksi ciri yg digunakan apakah sdh tepat atau belum
Jika belum tepat maka perlu dilakukan penggantian metode ekstraksi ciri
% deteksi titik sudut
xy3 = sortrows(xy2);
for k = 1:length(lines)
bbox = xy3(k*2,:)-10;
I = insertText(I,bbox, num2str(k),’FontSize’,20);
end
bang minta tolong dong, maksud program diatas bisa dijelaskan maksud perbaris nya bang.
Source code tersebut berfungsi untuk menampilkan text di setiap titik sudut yang terdeteksi
maaf mas lalu gimana cara nya kita bisa mengukur besar sudutnya?
Untuk mengukur besar sudut bisa menggunakan persamaan trigonometri
mas izin tanya, coding diatas dilakukan command window matlab atau di M-file matlab, atau di GUI matlab?
Bisa dijalankan di script matlab
% deteksi garis dengan transformasi hough
[H,theta,s] = hough(bw2,’Theta’,-90:0.5:89);
P = houghpeaks(H,100,’threshold’,ceil(0.3*max(H(:))));
lines = houghlines(bw2,theta,s,P,’FillGap’,10,’MinLength’,2);
izin tanya mas, angka-agka pada program diatas didapat dari mana mas?