Nama Problem
Geometry Shape Counter
Level
Medium
Estimasi Waktu
3 minggu
Lingkaran: 1
Segi Empat: 1
Segitiga : 1
Segi Lima:1
Bintang: 1
Open Image
Deteksi Bentuk
Untuk mempermudah pemrosesan maka diasumsikan gambar sudah dalam bentuk hitam putih,
anda dapat menggunakan fungsi im2bw untuk mengkonversi gambar menjadi hitam putih. Alur blok
proses dari sistem adalah sebagai berikut:
Tahap 1 : membangun data model dari bentuk dengan menggunakan teori momen dalam ektrasi ciri
(Materi untuk momen dapat dilihat pada buku : Feature Ekstraction and Image Processing, Marx
Nixon and Alberto Aguado, chapter 7.3 Region Descriptor)
Tahap 2: membangun GUI sesuai dengan contoh diatas dimana dilakukan proses load data model
hasil tahap pertama untuk melakukan pencocokan.
Yang perlu dikumpulkan:
1. Kode program
2. Dokumentasi Program yang berisi:
- Landasan teori
- Rancangan sistem
- Hasil Pengujian (minimal 10 pengujian)
- Performansi Sistem
- Kesimpulan dan Saran
Membangun
Model
Menguji
Model untuk
1 objek
Menguji
Model untuk
banyak objek
Bintang.png
Segilima.png
Keterangan:
x,y =lokasi pixel,
I(x,y)=intensitas pixel , dimana untuk gambar hitam putih hanya akan berisi angka 1 dan 0,
p dan q = indek moment
A= delta posisi dimana untuk gambar diskrit A=1.
function hasil=moment(I,p,q)
%I= gambar yang akan dihitung momentnya, dalam format bw
%p= indek moment untuk x
%q =indek moment untuk y
[m,n]=size(I);
%m=baris ~ y
%n=kolom ~ x
hasil=0;
for i=1:n
for j=1:m
hasil=hasil+i^p*j^q*I(j,i);% ingat akses matrik
basisnya baris dan kolom
end
end
clc;
clear;
%menyiapkan variabel untuk menyimpan model
Model=zeros(5,7);
Nama_Model=struct('Bentuk',{});
% 5=jumlah model , 7 ciri model (harusnya invarian moment)
I=imread('kotak.png');
Ibw=im2bw(I);
%ingat asumsi bahwa objek yang dicari bernilai 1,
%dalam penyimpanan data putih=1 dan hitam=0
%di kasus kita hitam seharusnya bernilai 1
m00=moment(~Ibw,0,0);%identik dengan luas
m10=moment(~Ibw,1,0);
m01=moment(~Ibw,0,1);
%memanfaatkan moment untuk mencari titik pusat benda
%xc=m10/m00
%yc=m01/m00
xc=round(m10/m00);
yc=round(m01/m00);
load('modelmoment.mat')
Ok, silahkan dilanjutkan secara mandiri 25 September 2014