Pengujian dan tampilan program pengenalan objek kupu-kupu

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