29
BAB IV HASIL DAN PEMBAHASAN
Pada hasil dan pembahasan, akan dibahas tentang rancangan software dan hasil dari pengerjaan software serta sejauh mana program ini dapat berjalan dengan baik.
Pengambilan data yang dilakukan dengan menggunakan 10 objek kupu-kupu yang sudah disediakan sebelumnya. Gambar 4.1 adalah hasil rancangan yang telah dijelaskan pada
BAB III.
Gambar 4.1. Hasil Rancangan
4.1. Pengujian dan tampilan program pengenalan objek kupu-kupu
secara Real time
Pengujian dan tampilan program menggunakan perangkat keras dan perangkat lunak sebagai berikut:
1. Processor INTELR AtomTM CPU N2600 1.66GHZ
2. RAM 2.00 GB 3. Matlab7.10.1 R2012a
Program pengenalan dapat dilakukan dengan langkah-langkah sebagai berikut : a. Klik dua kali pada icon matlab seperti pada gambar 4.2.
Gambar 4.2. Shortcut Matlab b. Setelah klip icon matlab, maka akan muncul tampilan awal matlab seperti pada
gambar 4.3. Pada tampilan tersebut terdapat berbagai macam tools untuk merancang GUI maupun untuk membuat program.
Gambar 4.3. Tampilan awal Matlab c. Kemudian ganti Current Directory sesuai dengan directory dimana program yang
akan dipakai disimpan, setelah itu ketik guide Gui pada Command Window maka akan muncul tampilan jendela utama program pengenalan seperti pada gambar
4.4, klik run untuk menjalankan program.
Gambar 4.4. Tampilan Gui sebelum diaktifkan d. Setelah klik run, maka akan menampilkan tampilan utama program seperti pada
Gambar 4.5.
Gambar 4.5. Gui yang sudah di RUN e. Selanjutnya, memilih dan menekan tombol yang sudah tersedia beserta urutannya
seperti gambar 4.6.
Gambar 4.6. Tampilan GUI aktif Berikut merupakan fungsi dan penjelasan tentang tombol tersebut :
1. Tombol on
Gambar 4.7. Tampilan saat tombol on ditekan Tombol On berfungsi untuk mengaktifkan webcam dan gambar yang akan
dicapture akan tampil pada axes “gambar_asli”. Program untuk menjalankan
tombol tersebut dapat dilihat pada Gambar 4.8. Hasil dari proses tersebut dapat dilihat pada gambar 4.7.
vid=videoinputwinvideo,1,RGB24_320x240; vid.FramesPerTrigger = 1;
vid.ReturnedColorspace = rgb;
Gambar 4.8. Program tombol on
2. Tombol Capture
Gambar 4.8. Tampilan Setelah Capture Tombol Capture berfungsi untuk mengambilmencuplik gambar dari video
yang akan digunakan untuk proses selanjutnya dan hasil dari yang telah dicuplik akan ditampilkan pada axes
„gambar_asli‟ . Gambar 4.8 merupakan tampilan setelah tombol capture ditekan
Format gambar yang sudah dicuplik yaitu RGB. Untuk menjalankan tombol tersebut, menggunakan program sebagai berikut
imaqreset; vid=videoinputwinvideo,1,RGB24_320x240;
vid.FramesPerTrigger = 1; vid.ReturnedColorspace = rgb;
triggerconfigvid, manual; vidRes = getvid, VideoResolution;
imWidth = vidRes1; imHeight = vidRes2;
nBands = getvid, NumberOfBands; hImage = imagezerosimHeight, imWidth, nBands, parent,
handles.gambar_asli
previewvid, hImage; startvid;
pause3; triggervid;
stoppreviewvid; capt1 = getdatavid;
a=[gethandles.nama,string] axeshandles.gambar_asli;
imshowcapt1; imwrite capt1,a, jpeg
3. Tombol Mode RGB Tombol mode rgb berfungsi untuk mengekstrak citra menjadi tiga citra
dengan komposisi citra R, citra G, citra B. Masing-masing citra tersebut
disimpan pada axes’red’,’green’,’blue’. Tampilan setelah tombol RGB ditekan
dapat di lihat pada Gambar 4.9
Gambar 4.9. Tampilan Mode RGB
Berikut adalah program untuk merubah citra tersebut:
a=[gethandles.nama,string] test=imreada;
a0=test:,:,1; b0=test:,:,2;
c0=test:,:,3; menampilkan mode rgb
axeshandles.red imshowa0;
axeshandles.green imshowb0;
axeshandles.blue imshowc0;
4. Tombol Crop Tombol crop berfungsi untuk cropping, memotong frame, clear
background dan mencari nilai.Cropping menggunakan fungsi bounding box yang dijelaskan pada bab III. Memotong frame juga dilakukan setelah
auto cropping dilakukan untuk memfokuskan citra sehingga nilai rgbnya hanya citranya saja. Clear backgraound digunakan untuk menghilangkan
background masing-masing komponen warna. Gambar 4.10. merupakan proses keseluruhan untuk mencari nilai RGB.
Gambar 4.10. Tampilan setelah di crop Ketiga proses tersebut di buat dalam bentuk fungsi „nilai_r‟,‟nilai_g‟ dan
‟nilai_b‟. Isi dari fungsi tersebut dapat dilihat sebagai berikut
A=[gethandles.nama,string]; img0=imreada;
hasil_r = nilai_rimg0; hasil_g = nilai_gimg0;
hasil_b = nilai_b img0; axeshandles.red;
imshowhasil_r axeshandles.green;
imshowhasil_g axeshandles.blue;
imshowhasil_b
Berikut ini adalah isi dari salah satu fungsi dari cropping salah satu komponen citra pada listing berikut
Function img5=nilai_rimg1 img10=img1:,:,1;
img1=doubleimg10; img8=img1255;
img3=1-img8;
img4=bboxgimg3; img5=auto_cleanimg4;
Berikut ini adalah fungsi dari bounding box yang pembahasannya sudah dijelaskan pada bab III.
Function img6=bboxgimg1 Pemotongan sesuai bounding box,
untuk citra grayscale dengan range data 0-1 Potong kiri
img2=cutleftimg1; Putar 90 cw dan potong kiri
img3=fliplrimg2; img3=cutleftimg3;
Putar 90 cw dan potong kiri img4=fliplrimg3;
img4=cutleftimg4; Putar 90 cw dan potong kiri
img5=fliplrimg4; img5=cutleftimg5;
Putar 90 cw img6=fliplrimg5;
========================================================= FUNGSI INTERNAL
========================================================= function img2=cutleftimg0
Subrutin untuk memotong kolom kiri yang kosong Berlaku untuk citra grayscale
Konversi ke biner thr=0.7;
img1=ceilimg0-thr; img2=img0;
Potong kiri JKolom=sumimg1;
KolomTakNol=findJKolom 10; if sumKolomTakNol=1
img2:,1:KolomTakNol1-1=[]; end
Berikut ini adalah fungsi dari clear background yang pembahasannya sudah dijelaskan pada bab III.
function img8=auto_cleanimg0 z=128;resize ke 128 x 128
img8_1=imresizeimg0,[z z]; img8=imresizeimg8_1,1;
potong=[1 2 3 4 5 6 7 8]; memotong frame
for a=1:4; img8=fliplrimg8;
img8 :, potong = []; end
menghilangkan background [a b]=sizeimg8;
for i=1:ab; if img8i0.65;
img8i=0; end
end imshowimg8;
5. Tombol Hitung Berfungsi untuk menampilkan jumlah nilai RGB yang sudah melalui
proses Preprocessing. Nilai nilai tersebut nanti akan menjadi inputan pada proses klasifikasi fuzzy.
Gambar 4.11. Tampilan setelah tombol hitung ditekan Berikut merupakan listing program tombol hitung. Pada listing matrik
dijumlah dengan perintah „sum‟ nilai seluruh jumlah itulah yang digunakan untuk pengenalan Gambar 4.11.
a_r= handles.red; a_g=handles.green;
a_b=handles.blue; menjumlah matrik
b_r=sumsuma_r; b_b=sumsuma_b;
b_g=sumsuma_g; merah=b_r;
hijau=b_g; biru=b_b;
menampilkan nilai sethandles.nilai_r,string,merah
sethandles.nilai_g,string,hijau sethandles.nilai_b,string,biru
6. Tombol Kenal Pada tombol kenal terdapat fungsi untuk menentukan kelas,
fusifikasi dan inferensi dan menentukan keputusan. Proses program ini adalah menentukan kelas, lalu dari kelas tersebut diarahkan menuju
pengurangan konstanta sesuai dengan kelas yang dimasuki. Setelah nilai sudah dikurangkan maka masuk ke proses fusifikasi dengan fungsi
keanggotaan yang sudah ditentukan berdasarkan pengambilan data base sebelumnya.
Proses ini berada pada fungsi „kenali_fuzzy‟ untuk lebih lengkapnya dapat dilihat pada lampiran. Di dalam fungsi tersebut terdapat listing
program yang memproses nilai RGB menuju inferensi. Pada label kesimpulan Gambar 4.12 terdapat hasil dari sistem inferensi yang
dilakukan. Penentuan keputusan dilakukan berdasarkan kesesuaian dengan rule base yang telah ditentukan sebelumnya. Beikut ini adalah listing
programnya.
Gambar 4.12. Tampilan setelah tombol kenal ditekan
a1=[gethandles.nama,string] img0=imreada1;
hasil_r = nilai_rimg0; hasil_g = nilai_gimg0;
hasil_b = nilai_b img0; a_r=hasil_r;
b_r=sumsuma_r; a_g=hasil_g;
b_g=sumsuma_g;
a_b=hasil_b; b_b=sumsuma_b;
nilai_r1 = b_r10; nilai_g1 = b_g10;
nilai_b1 = b_b10; red=nilai_r1;
green=nilai_g1; blue=nilai_b1 ;
fu1=kenali_fuzzired; fu2=kenali_fuzzi_ggreen;
fu3=kenali_fuzzi_bblue; sethandles.kenal_r,string,fu11
sethandles.kenal_g,string,fu21 sethandles.kenal_b,string,fu31
sethandles.kenal_r1,string,fu12 sethandles.kenal_g1,string,fu22
sethandles.kenal_b1,string,fu32 for jika=1:11
if fu22==jika fu32==jika... ||fu12==jika fu22==jika...
sethandles.edit16,string,a
7. Tombol Refresh Tombol refresh untuk mengulang kembali dari awal aplikasi pengenalan
dengan nilai masukan yang masih kosong atau menyegarkan kembali aplikasi pengenalan. Berikut adalah listing programnya.
Clear all; clc;
deletefigurepengenalan_kupu; figurepengenalan_kupu;
8. Kotak simpan Berfungsi untuk memberi nama gmbar yng telah dicapture.
9. Tombol Clear Tombol clear befungsi untuk menghapus gambar pada masing masing axis
dan mereset semua nilai-nilai sehingga pada pemakaian selanjutnya tidak terganggu nilai sebelumnya
Gambar 4.13.Tampilan setelah tombol clear di tekan . Gambar 4.13 adalah tampilannya dan berikut adalah listing programnya.
Clc; a=[1 1 1; 1 1 1; 1 1 1];
b=[1 1 1; 1 1 1; 1 1 1]; c=[1 1 1; 1 1 1; 1 1 1];
axes handles.red; imshowa;
axes handles.green; imshowb;
axes handles.blue; imshowc;
axes handles.gambar_asli; imshowc;
sethandles.nilai_r,string,r
sethandles.nilai_g,string,g sethandles.nilai_b,string,b
sethandles.kenal_r,string,- sethandles.kenal_g,string,-
sethandles.kenal_b,string,-
4.2. Pengujian Secara Real time