Anda di halaman 1dari 4

Pembelajaran Berbasis Problem Solving

Nama Problem
Geometry Shape Counter
Level
Medium
Estimasi Waktu
3 minggu

Estimasi waktu pengerjaan adalah 2 minggu:


1. Buatlah sebuah program dengan input sebuah gambar yang berisikan 5 bentuk yaitu: lingkaran,
segi empat, segitiga, segi lima dan bintang. Luaran dari program adalah jumlah masing-masing
bentuk tersebut. Ilustrasi dari tampilan sistem adalah sebagai berikut:

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

Tahap 1: Membangun Model


Sediakan gambar bentuk yang ingin dikenali dimana setiap bentuk disimpan dalam sebuah file
Kotak.png
Segitiga.png
Lingkaran.png

Bintang.png

Segilima.png

Terjemahkan formula moment ke dalam kode:

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

Script untuk menguji keberhasilan perhitungan momen:

%kita akan menggunakan salah satu manfaat dari moment yaitu


dapat digunakan untuk menentukan pusat benda.
clc;
clear;
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);
%tampilkan gambar dan berikan marker pada pusatnya
imshow(Ibw)
hold on
plot(xc, yc, 'b*')
hold off
Sampai tahap ini kita telah berhasil melakukan perhitungan moment dasar, tahap selanjutnya adalah
menggunakan perhitungan moment dasar ini untuk menghitung 7 invariant moment (lihat slide
pertemuan 9, halaman 17-20).Moment -> central moment -> invarian moment
Sesuai dengan harapan pada tahap 1 yaitu membangun model, maka hasil perhitungan anda
hasrus disimpan untuk dapat digunakan ulang. Dalam Matlab kita dapat menggunakan
mekanisme penyimpanan dalam *.mat file untuk melakukan hal ini.
Berikut kode dummy untuk melakukan penyimpanan

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

%tampilkan gambar dan berikan marker pada pusatnya


imshow(Ibw)
hold on
plot(xc, yc, 'b*')
hold off
%simpan hasil perhitungan ke model
Nama_Model(1).Bentuk='kotak';
%ini hanya contoh saja, seharusnya anda menyimpan 7 invariant
moment
Model(1,1)=m00;Model(1,2)=m10;Model(1,3)=m01;
%=========================================================
I=imread('lingkaran.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);
%tampilkan gambar dan berikan marker pada pusatnya
imshow(Ibw)
hold on
plot(xc, yc, 'b*')
hold off
%simpan hasil perhitungan ke model
Nama_Model(2).Bentuk='lingkaran';
%ini hanya contoh saja, seharusnya anda menyimpan 7 invariant
moment
Model(2,1)=m00;Model(2,2)=m10;Model(2,3)=m01;
%==== Lanjutkan sampai 5 bentuk ======%
%........
%........
%simpan model
save('modelmoment.mat','Model','Nama_Model')
Data model akan tersimpan pada sebuah file .mat dengan nama modelmoment.mat, untuk
menggunakan kembali silahkan anda load dengan perintah

load('modelmoment.mat')
Ok, silahkan dilanjutkan secara mandiri 25 September 2014

Anda mungkin juga menyukai