BAB IV ANALISIS DAN PEMBAHASAN
4.1. Pengujian Program Pengenalan Kepingan Huruf Plat Nomor Kendaraan Bermotor
4.1.1. Home
Gambar 4.1 Tampilan Home
Gambar 4.1 merupakan jendela yang muncul pertama kali saat user menjalankan program. Tampilan home terdiri dari 2 push button dan 4 menu editor. Tombol Mulai adalah untuk memulai program pengenalan huruf sedangkan tombol keluar adalah untuk mengakhiri program pengenalan huruf. Menu home adalah menu yang akan menampilkan tampilan home. Menu pengenalan adalah menu yang akan menampilkan program tampilan pengenalan. Menu bantuan adalah menu yang akan menampilkan langkah–langkah pengoperasian program. Menu tentang adalah menu yang menampilkan informasi tentang pembuat program.
a. Tombol Mulai
Tombol mulai adalah tombol untuk memulai program pengenalan huruf, apabila tombol tersebut ditekan maka akan muncul figure tampilan huruf. Jika tombol Mulai ditekan maka akan menjalankan perintah program berikut :
delete(figure(tampilan_awal)); figure(tampilan_huruf);
Berdasarkan hasil pengujian tombol mulai dapat berjalan dengan baik. Tombol dapat menghapus jendela home dan kemudian menampilkan jendela pengenalan.
b. Tombol Keluar
Tombol Keluar adalah tombol untuk mengakhiri program pengenalan huruf, apabila tombol tersebut ditekan maka akan keluar. Jika tombol keluar ditekan maka akan menjalankan perintah program berikut :
delete(figure(tampilan_awal));
Berdasarkan hasil pengujian tombol keluar dapat berjalan dengan baik. Tombol dapat mengeluarkan program dengan menghapus jendela home.
4.1.2. Pengenalan
Gambar 4.2 Tampilan Pengenalan
Gambar 4.2 menjelaskan tentang tampilan pengenalan dari program pengenalan huruf. Tampilan pengenalan jendela yang berisi tentang proses pengenalan huruf. Tampilan pengenalan ada sedikit perubahan minor dari perancangan awal, perubahannya adalah penambahan tombol reset. Di dalam jendela ini yang diproses dengan menggunakan perintah program adalah 4 push button, 2 pop–up menu, 3 axes dan 2 static text. Tombol video on berfungsi untuk menghidupkan kamera ke axes 1. Tombol capture berfungsi untuk mengambil citra kepingan plat yang akan diproses dan akan tertampil ke dalam axes 1 juga. Tombol pengenalan berfungsi untuk melakukan proses pengenalan, proses yang terjadi di dalam tombol pengenalan antara lain adalah preprocessing, ekstrasi ciri, fungsi
jarak dan penentuan hasil pengenalan. Pop–up menu yang pertama berisi tentang berbagai ukuran tapis Gaussian 2D yaitu 4×4, 8×8, 12×12 dan 16×16. Pop–up menu yang kedua berisi tentang berbagai ukuran standar deviasi tapis Gaussian 2D, yaitu 2, 6, 10 dan 14. Axes yang pertama memuat video dan cuplikan citra dari webcam. Axes yang kedua menampilkan hasil pengaburan citra kepingan plat dan axes yang ketiga menampilkan hasil perataan blok citra kepingan plat. Static text berfungsi untuk menampilkan output hasil pengenalan.
Cara mengoperasikan jendela pengenalan adalah terlebih dahulu user menekan tombol video on sehingga didalam axes 1 akan terlihat gambar video kepingan plat. Kemudian user menekan tombol capture untuk mengambil citra kepingan plat yang akan dikenali. Setelah itu user harus memilih ukuran tapis Gaussian 2D dan standar tapis Gaussian 2D. Apabila user tidak melakukan pemilihan tersebut maka program tidak dapat melakukan pengenalan. Setelah itu user menekan tombol pengenalan untuk mengetahui hasil pengenalan citra kepingan plat. Apabila tombol pengenalan ditekan maka pada axes 2 akan terdapat gambar pengaburan citra kepingan plat dan axes 3 akan tertampil gambar perataan blok citra kepingan plat. Kemudian hasil pengenalan akan muncul pada static text hasil pengenalan. Apabila user telah selesai melakukan pengenalan maka dapat ditekan tombol selesai untuk keluar dari program pengenalan.
a. Tombol Video on
Tombol video on berisi tentang program untuk menghubungkan antara webcam dengan Matlab dan kemudian ditampilkan ke dalam program pengenalan. Perintah program pada tombol video on sebagai berikut :
I=imaqhwinfo;
handles.vid=videoinput('winvideo');
vid=videoinput('winvideo',1 ,'RGB24_640x480');
vidRes = get(vid, 'VideoResolution');
imWidth = 640 ; imHeight = 480;
nBands = get(vid, 'NumberOfBands');
hImage = image(zeros(imHeight, imWidth, nBands), 'parent',handles.axes1);
Perintah program imaqhwinfo adalah perintah program untuk menampilkan informasi yang akan disampaikan oleh webcam dan kemudian informasi tersebut akan kita inisialisasi di dalam program agar antara webcam dengan software Matlab dapat
melakukan komunikasi. Informasi yang tertampil adalah adaptor camera, port webcam, jenis warna dan resolusi piksel.
preview(vid, hImage)
Perintah program preview adalah untuk menampilkan video pada saat kamera on dengan inisialisasi yang telah digunakan.
b. Tombol Capture
Tombol capture adalah tombol yang digunakan untuk mengambil citra kepingan plat yang akan dikenali dalam program pengenalan. Perintah program pada tombol capture adalah sebagai berikut :
imaqhwinfo;
info = imaqhwinfo('winvideo');
dev_info = imaqhwinfo('winvideo',1);
vid=videoinput('winvideo',1,'RGB24_640X480');
vid.FramesPerTrigger = 1 ;
vid.ReturnedColorspace = 'grayscale';
triggerconfig(vid, 'manual');
vidRes = get(vid, 'VideoResolution');
imWidth = 640; imHeight = 480;
nBands = get(vid, 'NumberOfBands');
hImage = image(zeros(imHeight, imWidth, nBands), 'parent',handles.axes1);
Perintah program di atas adalah sama dengan perintah program pada tombol video on tetapi ditambah perintah grayscale karena pada saat preprocessing citra input harus mengalami proses grayscale.
start(vid); pause(1); trigger(vid); stoppreview(vid); capt1=getdata(vid);
Perintah program getdata adalah untuk capturing citra yang diambil pada saat camera telah on.
handles.a=capt1;
guidata(hObject,handles) axes(handles.axes1); imshow(capt1)
Citra yang telah mengalami capturing maka akan diinisialisasi dengan menggunakan handles. Handles adalah sebuah inisialisasi yang digunakan agar dapat dipanggil dalam file figure maupun file .m .
c. Pop–up menu ukuran tapis Gaussian 2D
Pop–up menu ukuran tapis Gaussian 2D digunakan untuk memilih ukuran tapis mana yang dipakai untuk pengaburan citra kepingan plat yang akan dikenali. Perintah program yang digunakan adalah sebagai berikut :
indeks=get(handles.popupmenu1,'Value'); switch indeks case 1 ukuran=4; case 2 ukuran=8; case 3 ukuran=12; case 4 ukuran=16; end handles.ukuran=ukuran; guidata(hObject,handles)
d. Pop–up menu standar deviasi tapis Gaussian 2D
Pop–up menu standar deviasi tapis Gaussian 2D digunakan untuk memilih standar deviasi mana yang dipakai untuk pengaburan citra kepingan plat yang dikenali. Perintah programnya sebagai berikut :
indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 std=2; case 2 std=6; case 3 std=10; case 4 std=14; end handles.std=std; guidata(hObject,handles);
e. Tombol Pengenalan
Tombol pengenalan adalah tombol yang berfungsi untuk melakukan pengenalan mulai dari preprocessing, ekstrasi ciri, jarak Euclidean dan hasil penentuan pengenalan. Perintah program yang digunakan adalah sebagai berikut :
a=handles.a;
b=imcrop(a,[222 141 115 143]); x=imresize(b,[64 64]);
Perintah program imcrop adalah untuk memotong gambar yang tidak dibutuhkan dalam proses ekstrasi ciri. Perintah program imresize adalah untuk membuat citra input agar berukuran piksel 64×64, hal ini dilakukan karena ekstrasi ciri pengaburan dan perataan blok hanya bisa dilakukan dengan citra yang mempunyai ukuran piksel 64×64. ukuran=handles.ukuran;
std=handles.std;
if (ukuran==4) &(std==2)
LPF=fspecial('gaussian',[4,4],2);
elseif (ukuran==4) &(std==6)
LPF=fspecial('gaussian',[4,4],6);
elseif (ukuran==4) &(std==10)
LPF=fspecial('gaussian',[4,4],10);
elseif (ukuran==4) &(std==14)
LPF=fspecial('gaussian',[4,4],14);
elseif (ukuran==8) &(std==2)
LPF=fspecial('gaussian',[8,8],2);
elseif (ukuran==8) &(std==6)
LPF=fspecial('gaussian',[8,8],6);
elseif (ukuran==8) &(std==10)
LPF=fspecial('gaussian',[8,8],10);
elseif (ukuran==8) &(std==14)
LPF=fspecial('gaussian',[8,8],14);
elseif (ukuran==12) &(std==2)
LPF=fspecial('gaussian',[12,12],2);
elseif (ukuran==12) &(std==6)
LPF=fspecial('gaussian',[12,12],6);
elseif (ukuran==12) &(std==10)
LPF=fspecial('gaussian',[12,12],10);
elseif (ukuran==12) &(std==14)
LPF=fspecial('gaussian',[12,12],14);
LPF=fspecial('gaussian',[16,16],2);
elseif (ukuran==16) &(std==6)
LPF=fspecial('gaussian',[16,16],6);
elseif (ukuran==16) &(std==10)
LPF=fspecial('gaussian',[16,16],10);
elseif (ukuran==16) &(std==14)
LPF=fspecial('gaussian',[16,16],14);
end
Perintah program diatas adalah untuk mengeksekusi pilihan yang telah dipilih user dalam pemilihan pop–up menu. Apabila user telah memilih 2 pop-up menu maka program akan menjalankan fungsi low pass filter atau pengaburan sesuai pilihan user.
[o,y]=gui_eciri(x,LPF); mo=max(o(:)); o=o/mo; my=max(y(:)); y=y/my; axes(handles.axes2) imshow(o); axes(handles.axes3) imshow(y); y=y(:);
Perintah program gui_eciri adalah untuk memanggil fungsi ektrasi ciri. Fungsi ekstrasi ciri mempunyai masukan x dan LPF. X adalah citra input dan LPF adalah hasil dari pilihan pop–up menu. Output dari fungsi gui_eciri adalah o dan y. O adalah hasil dari pengaburan dan y adalah hasil dari perataan blok. Hasil dari fungsi gui_eciri ditampilkan dalam imshow yang terlebih dahulu diinisialisasi melalui handles.axes .
if (ukuran==4) &(std==2)
load xciri0402;
elseif (ukuran==4) &(std==6)
load xciri0402;
elseif (ukuran==4) &(std==10)
load xciri0410;
elseif (ukuran==4) &(std==14)
load xciri0414;
elseif (ukuran==8) &(std==2)
load xciri0802;
elseif (ukuran==8) &(std==6)
elseif (ukuran==8) &(std==10)
load xciri0810
elseif (ukuran==8) &(std==14)
load xciri0814
elseif (ukuran==12) &(std==2)
load xciri1202
elseif (ukuran==12) &(std==6)
load xciri1206;
elseif (ukuran==12) &(std==10)
load xciri1210;
elseif (ukuran==12) &(std==14)
load xciri1214;
elseif (ukuran==16) &(std==2)
load xciri1602;
elseif (ukuran==16) &(std==6)
load xciri1606;
elseif (ukuran==16) &(std==10)
load xciri1610;
elseif (ukuran==16) &(std==14)
load xciri1614;
end
mz=max(z(:)); z=z/mz;
Perintah program diatas adalah untuk mengeluarkan database yang akan dibandingkan dalam perhitungan jarak. Pengeluaran database pembanding menyesuaikan pemilihan pop–up menu yang telah dipilih oleh user.
for n=1:26
r(n)=jarak(y,z(:,n));
end
Perintah program di atas adalah perintah untuk menghitung jarak antara citra input dengan citra database.
mm=min(r)
Perintah program di atas adalah untuk mencari nilai minimum dari perhitungan jarak Euclidean.
if (ukuran==4) &(std==2)
if (mm > 0.96)
y1=('TIDAK DIKENALI');
set(handles.text15,'string',y1);
b1=find(min(r)==r)
x2={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
'P','Q','R','S','T','U','V','W','X','Y','Z'}; y1=x2(b1);
set(handles.text14,'string',y1);
end
else
b1=find(min(r)==r);
x2={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P'
,'Q','R','S','T','U','V','W','X','Y','Z'}; y1=x2(b1);
set(handles.text14,'string',y1);
end
Perintah program di atas adalah untuk menentukan hasil pengenalan program. Hasil pengenalan program terdiri dari 2 macam yaitu “TIDAK DIKENALI” dan mencari nilai paling minimum dari 26 nilai yang telah diinisialisasi. Berdasarkan pengujian tombol, tombol pengenalan dapat berjalan dengan baik dan sesuai dengan perancangan.
f. Tombol selesai
Tombol selesai adalah tombol yang digunakan apabila user ingin keluar dari program pengenalan citra kepingan plat hruf. Perintah programnya adalah sebagai berikut :
delete(figure(tampilan_huruf));
Berdasarkan pengujian tombol, tombol pengenalan dapat berjalan dengan baik dan sesuai diagram blok pada saat perancangan.
g. Tombol Reset
Tombol reset adalah tombol yang digunakan apabila user ingin mengembalikan ke tampilan awal program pengenalan. Perintah programnya sebagai berikut :
delete(figure(tampilan_huruf)); figure(tampilan_huruf));
4.1.3. Bantuan
Gambar 4.3 Tampilan Bantuan
Pada Gambar 4.3 tampilan bantuan menjelaskan tentang langkah–langkah dalam mengoperasikan program agar user tidak kesulitan ketika menjalankan program pengenalan.
Berdasarkan pengujian, tombol pada tampilan bantuan dapat berjalan dengan baik dan sesuai perancangan.
4.1.4. Tentang
Pada Gambar 4.1 tampilan tentang menjelaskan tentang informasi pembuat program serta spesifikasi komputer yang dapat digunakan untuk menjalankan program pengenalan.
Berdasarkan pengujian, tombol pada tampilan tentang dapat berjalan dengan baik dan sesuai perancangan.
4.1.5. Menu Editor
Gambar 4.5 Tampilan menu editor
Pada Gambar 4.5 menu editor menunjukkan sebuah menu yang terdapat dalam setiap jendela yang ada di program pengenalan. Menu editor berfungsi untuk memudahkan user agar dapat melompat ke jendela yang lain.
Kesimpulan yang dapat diambil dari hasil pengujian adalah semua fasilitas tombol dan menu editor dalam program pengenalan dapat berjalan dengan baik dan alur program telah sesuai dengan perancangan.
4.2 Hasil Pengujian Program Pengenalan Terhadap Tingkat Pengenalan Citra