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 , , , , , , , . Bookmark the permalink. 9 Comments.

  1. 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

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

  3. maaf mas lalu gimana cara nya kita bisa mengukur besar sudutnya?

  4. mas izin tanya, coding diatas dilakukan command window matlab atau di M-file matlab, atau di GUI matlab?

  5. % 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?

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: