Penjelasan Program Pengenalan secara real time rambu lalu lintas peringatan menggunakan ekstraksi ciri Wavelet Haar dan fungsi jarak Chi Square.
handles.a=gambar; guidatahObject,handles
Perintah program getdata adalah perintah untuk meng-capture gambar saat video dari wabcam sedang dalam keadaan on. Hasil dari capture wabcam memiliki format
gambar YUY sehingga diubah terlebih dahulu ke format gambar RGB dengan cara menggunakan fungsi yuy2torgb. Agar hasil capture bisa dipanggil dan digunakan
diprogram lain maka diinisialisasikan menggunakan “handles”. c.
Popupmenu
Gambar 4.9. tampilan saat popupmenu diklik -
Popupmenu merupakan bagian untuk user memilih variasi desimasi yang diinginkan, pada bagian popupmenu ini terdiri dari 4 pilihan variasi desimasi yaitu desimasi1,2,dan
3. Popupmenu menjalankan program berikut : indeks=gethandles.popupmenu1,
Value ;
switch indeks
case 2
des=1; case
3 des=2;
case 4
des=3; end
handles.des=des; guidatahObject,handles;
Program di atas tertulis des=1 maksudnya adalah desimasi akan dilakukan sebanyak 1 kali, untuk penjelasan desimasi dapat dilihat pada bab III. Desimasi diinisialisasikan
dengan nama “des”, agar nilai variasi desimasi ini dapat dipanggil diprogram lain maka diubah menjadi “handles.des”.
d. Tombol Start
Gambar 4.10. Tampilan saat tombol start diklik Proses pada tombol start ini terdiri dari beberapa bagian program yang digabungkan,
program-program tersebut yaitu program grayscale, program cropping, program resizing
, program ekstraksi jarak, program fungsi jarak dan program keluaran. -
Program grayscale Program ini berfungsi untuk mengubah gambar yang telah di-capture menjadi
berwarna keabu-abuan. PROSES GRAYSCALE
x=handles.a; axeshandles.axes2;
x1=doublergb2grayx; x2=x1255;
imshowx2
Perintah double pada program diatas berfungsi untuk mengubah nilai pada gambar grayscale
karena nilainya masih unsigninteger, sedangkan nilai hasil akhir dibagi 255 sebagai normalisasi agar nilai maksimalnya 1.
- Program cropping
Program ini berfungsi untuk memotong gambar sehingga bagian yang tidak di perlukan dapat dihilangkan.
PROSES CROPPING axeshandles.axes3;
x3=1-x2; x4=imcropx3,
[150 100 350 350]
; x6=imrotatex4,45,
bilinear ;
x7=ceilx6-0.80; x8=bboxx6,x7;
x10=imrotatex8,-45, bilinear
; imshowx10
axis on
Sebelum dilakukan cropping hasil dari grayscale dibalik terlebih dahulu, yang berwarna gelap bernilai 0 diubah menjadi berwarna terang bernilai 0 dengan cara
seperti list program “x3”, hal ini dilakukan untuk mempermudah dalam tahap
automatic cropping . Tahap selanjutnya melakukan manual cropping dengan cara
menentukan titik cropping berdasarkan gambar rambu yang berjarak 3 meter, hal ini dilakukan agar lebih memudahkan dalam tahap automatic cropping. Perintah
“imrotate” yaitu berfungsi untuk merotasi gambar sebanyak 45° agar gambar rambu menjadi berbentuk kotak, hal ini dilakukan agar mempermudah dalam pemotongan
automatic cropping . Hasi
l dari “imrotate” dikurangi 0,80 agar nilai-nilai yang masih dibawah 0,80 dibuat menjadi 0 sehingga perbedaan antara gelap dan terang makin
terlihat. Penentuan nilai 0,80 berasal dari hasil percobaan seperti pada table 4.1. Sedangkan perintah “ceil” yaitu berfungsi sebagai pembulatan angka ke atas, sebagai
contoh nilai 0,3 dibulatkan menjadi 1 dan nilai -0,9 dibulatkan menjadi 0.Tahap selanjutnya adalah tahap automatic cropping yaitu dengan cara menggunakan fungsi
“bbox” atau bounding box seperti yang sudah dijelaskan pada bab III Dibawah ini merupakan program bounding box namun untuk program lengkapnya dapat dilihat
pada lampiran.
Tabel 4.1. Mencari nilai parameter untuk bounding box Nilai
Hasil Gambar
0,25
0,50
0,75
0,95
function [out1,out2]=cutleftin1,in2
out1 gray , out2 biner out1=in1;
out2=in2; JKolom=sumin2;
KolomTakNol=findJKolom 60;
if sumKolomTakNol=1;
out1:,1:KolomTakNol1-1=[]; out2:,1:KolomTakNol1-1=[];
end
Program diatas adalah bagian dari program boundingbox yang berfungsi sebagai batas penentu titik potong untuk automatic cropping. List
program “JKolom” berfungsi untuk menjumlahkan nilai pada tiap kolom,pada gambar yang berwarna putih bernilai
1 sedangkan berwarna gelap bernilai 0. List program “KolomTakNol” berfungsi untuk
memotong kolom yang nilainya kurang dari nilai parameter yang sudah ditentukan, untuk nilai parameter “JKolom60” didapat dari hasil percobaan seperti pada table
4.2.Hasil dari “bbox” selanjutnya dirotasi kembali menggunakan “imrotate” sehingga
posisi rambu kembali ke posisi awal.
Tabel 4.2. Menentukan nilai parameter JKolom Nilai
Hasil Gambar
JKolom 20
JKolom 60
JKolom 150
JKolom 190
- Program resizing
Program ini berfungsi untuk menyesuaikan ukuran gambar dari hasil cropping sehingga memiliki ukuran piksel yang sama.
PROSES RESIZING axeshandles.axes4;
x11=imresizex10,[64 64]; imshowx11
axis on
Program diatas menggunakan perintah “imresize” yang berfungsi untuk mengubah ukuran dari citra, baik itu untuk memperbesar atau pun memperkecil ukuran citra.
Program resizing ini membuat ukuran citra menjadi 64 x 64 piksel.
- Program ekstraksi ciri
Program ini berfungsi untuk proses pengolahan data dari data yang banyak diekstrak menjadi data yang lebih sedikit namun dari data yang sedikit tersebut sudah bisa
mewakili data sebelumnya yang banyak. EKSTRAKSI CIRI
axeshandles.axes5; x12=xcwav2x11,des;
mx12=maxx12:; nx12=x12mx12;
x13=x12:; imshownx12
axis
on x13=x13+1;
z=z+1; Fungsi program
“xcwav2” adalah untuk memanggil fungsi ekstraksi ciri, yang mana di dalam fungsi ekstraksi ciri menggunakan ekstraksi ciri wavelet haar. Input dari
program ekstraksi ciri berasal dari hasil proses resizing yang berasal dari citra input dan
“des” adalah nilai desimasi hasil pilihanuser daripop-upmenu. Sedangkan list program
“nx12” berfungsi untuk normalisasi agar gambar bisa ditampilkan pada axes 5. List
program “x13” berfungsi untuk membuat data yang terdiri dari beberapa kolom menjadi hanya satu kolom, contoh data 32x32 diubah menjadi 1x1024 Output dari
fungsi “xcwav2” adalah x12, yang merupakan hasil dari ekstraksi ciri wavelet haar.
- Program fungsi jarak
Program ini berfungsi untuk membandingkan antara hasil dari ekstraksi ciri dengan database
yang telah disediakan, yang nantinya nilai terkecil akan dijadikan output dari sistem pengenalan rambu ini.
FUNGSI JARAK for
n=1:8 rn=jarakx13,z:,n;
end minr=minr
b1=findminr==r; b2=ceilb12;
Perintah program jarak adalah untuk memanggil fungsi jarak chi square yang akan membandingkan antara hasil dari output ekstraksi ciri yaitu x13 dengan hasil dari
database yaitu z. Sedangkan b1 merupakan hasil pencarian nilai terkecil dari hasil
perhitungan jarak, yang nantinya akan dicari letak nilai terkecil tersebut menggunakan list
program pada b2. -
Program keluaran Program ini berfungsi untuk menampilkan hasil pengenalan berupa tekstulisan dan
suara. KELUARAN TEXT
z2={ Tikungan ke Kiri
, Tikungan ke
Kanan ,
Persimpangan };
y1=z2b2 sethandles.edit1,
string ,y1;
Program diatas adalah program untuk menampilkan hasil pengenalan berupa tulisan. Variabel z2 adalah inisialisasi 3 buah kata, nantinya nilai minimal akan dipanggil
sesuai nama inisialisasi dan kemudian ditampilkan pada edit_text_1 menggunakan peritah set.
KELUARAN SUARA if
b2==1; y=wavread
Tikungan ke Kiri.wav ;
soundy,50000 elseif
b2==2; y=wavread
Tikungan ke Kanan.wav ;
soundy,50000
elseif b2==3;
y=wavread Persimpangan.wav
; soundy,50000
end Program diatas adalah program untuk menampilkan hasil pengenalan berupa suara.
Suara berasal dari hasil rekaman yang disimpan didalam folder yang sama dengan program GUI pengenalan rambu kemudian suara akan dipanggil menggunakan
perintah “wavread”. e.
Tombol Reset Tombol “Reset” berfungsi untuk mengulang program dari awal apabila user
melakukan kesalahan atau terjadi error pada saat proses pengenalan. Program pada tombol “reset” adalah sebagai berikut :
axeshandles.axes1 plot0;
axeshandles.axes2 plot0;
axeshandles.axes3 plot0;
axeshandles.axes4 plot0;
axeshandles.axes5 plot0;
sethandles.popupmenu2,
Value ,1;
sethandles.edit1, string
, ;
f. Tombol Close
Tombol “Close” berfungsi untuk mengakhiri dan keluar dari program atau tampilan GUI pengenalan rambu peringatan. Program pada tombol “Close” adalah sebagai
berikut : deletefigurePengenalan_Rambu;
Berdasarkan dari hasil pengujian tombol pada GUI pengenalan rambu peringatan dapat
ditarik kesimpulan bahwa program sudah berjalan dengan baik dan dapat bekerja sesuai dengan perancangan pada bab III.