i
Aplikasi Kamera Web Untuk Mengidentifikasi Plat Nomor Mobil
Jemmy / 0322042
E-mail : kaiser_jemmy@yahoo.com
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha
Jalan Prof. Drg. Suria Sumantri 65
Bandung 40164, Indonesia
ABSTRAK
Setiap kendaraan memiliki plat nomor sebagai tanda pengenal, dimana plat
nomor dapat menunjukkan asal daerah dan juga informasi data kepemilikan.
Informasi data kepemilikan biasanya terdapat pada kepolisian, sehingga apabila suatu
kejadian yang melibatkan suatu kendaraan, informasi data kepemilikan dapat dilihat.
Pencarian informasi secara manual akan menghabiskan waktu sehingga dengan
memanfaatkan teknologi pengolahan citra dan terknologi computer, pencarian data
kepemilikan dapat dilakukan lebih cepat.
Pada tugas akhir ini dibuat sebuah perangkat lunak dengan judul aplikasi
kamera web untuk mengidentifikasi plat nomor mobil dengan menggunakan simulasi
matlab. Proses ini diawali dengan pengambilan gambar melalui kamera web berupa
gambar berwarna (RGB) kemudian diubah ke bentuk gambar hitam putih. Setelah
itu, gambar dibagi menjadi beberapa bagian secara horizontal, bagian gambar yang
mengandung plat nomor diambil sebagai kandidat gambar untuk proses selanjutnya.
Kandidat gambar tersebut dipisahkan berdasar gambar bentuk karakter. Selanjutnya
gambar kandidat tersebut akan dikorelasikan dengan database sehingga didapat hasil
pengenalan karakter. Proses terakhir adalah pencocokan nomor plat dengan database
kepemilikan yang sudah ada.
Dalam pengujian 10 x pengenalan nomor plat, diperoleh pengenalan plat
sebesar 50 %, dan rata-rata pengenalan per karakter adalah 75.71 %.
ii
Web Camera Application For Identifying Car
’s
Plate Number
Jemmy / 0322042
E-mail : kaiser_jemmy@yahoo.com
Electrical Engineering, Technic Faculty, Christian Maranatha University
Prof. Drg. Suria Sumantri 65 Street
Bandung 40164, Indonesia
ABSTRACT
Every cars has plate number as an identifier sign, which it can show the area
of the cars came from and also information of the owner. The information usually
exist at an academy, so if that a case involve a cars, the information can be seen. With
manual search will wasting time, so with the image processing and computerize
technology, the search will be faster.
In this Final project, the software with title Application Web Camera For
Identify Car Plate Number using Matlab simulation. Started by capturing image from
Web Camera which that colorful image (RGB) and convert to black and white image.
After that, the image divided into some horizontal parts. Part of image that include
number plat will chosen as image candidate for the next process. Image candidate
will separate into characters. The next process is character correlation, which can
recognize the character from plate number. The last process is to matching the
number plate owner with an exist database..
On ten times experiment, we have 50 % of successful identification and
75.71% for average character identification.
.
iii
DAFTAR ISI
ABSTRAK……….
i
ABSTRACT………...
ii
KATA PENGANTAR………...
iii
DAFTAR ISI………...
v
DAFTAR TABEL………..
vii
DAFTAR GAMBAR……….
viii
BAB 1 PENDAHULUAN
1.1
Latar Belakang Masalah……….
1
1.2
Identifikasi Masalah………....
1
1.3
Tujuan……….
2
1.4
Pembatasan Masalah………...
2
1.5
Sistematika Penulisan………..
2
BAB 2 LANDASAN TEORI
2.1
Citra………..
4
2.2.1
Citra hitam putih dan keabuan………...
4
2.2.1.1 Citr
a keabuan (Grayscale)………….…………
5
2.2.1.2 Citra hitam putih (Monokrom)..…….………....
6
2.2.2
Citra berwarna……….………….
7
2.3
Ukuran File suatu citra……….………….
8
2.4
Pengolahan citra……….…………...
8
2.5
Ukuran File suatu citra……….…………..
7
2.6
Pengenalan pola……….
9
BAB 3 PERANCANGAN PERANGKAT LUNAK
3.1
Diagram Alir Utama……….………..
12
iv
3.3
Konversi masukan citra………..…
14
3.4
Pemotongan c
itra………
16
3.5
Pemotongan plat nomor……….
18
3.6
Pemisahan karakter………
21
3.7
Pengenalan karakter dengan metoda korelasi………
24
3.8
Pencocokan nomor plat dengan database kepemilikan………….
27
3.9
Desain dat
abase kepemilikan……….
28
3.10
Graphical User Interface ( GUI )
………
28
BAB 4 PENGUJIAN PERANGKAT LUNAK
4.1
Masukan database kepemilikan………..
30
4.2
Pengujian kamera web………...
33
4.3
Pendeteksian nomor plat..……….
33
4.3.1
Masukan citra dari kamera web…..……….
34
4.3.2
Penentuan kandidat plat nomor……….
34
4.3.3
Pemotongan plat……….
36
4.3.4
Pemisahan karakter………
37
4.3.5 Korelasi karakter dengan karakter p
ada database………..
37
4.3.6
Keluaran database……….
38
4.4
Data pengamatan………
39
BAB 5 KESIMPULAN DAN SARAN
5.1
Kesimpulan……….
35
v
DAFTAR TABEL
Tabel 4.1
Keteranga
n data kepemilikan 1……….
31
Tabel 4.2
Keterangan data kepemilikan 2………
32
vi
DAFTAR GAMBAR
Gambar 2.1
Contoh gambar pembagian pixel………..
4
Gambar 2.2
Contoh citra gray……….………….
6
Gambar 2.3
Contoh barcode yang mengandung citra hitam putih..………….
6
Gambar 2.4
Citra hitam putih menurut pembagian piksel……….
7
Gambar 2.5
Sistem warna………..
8
Gambar 2.6
Contoh penge
nalan pola pada pengenalan tanda tangan…………
10
Gambar 2.7
Pengenalan pola pada soal ujian anak-
anak……….
10
Gambar 3.1
Blok diagram proses identifikasi plat nomor kendaraan……….
11
Gambar 3.2
Diagram alir utama……….……….
12
Gamvar 3.3
Konversi
citra RGB ke gray……….
15
Gambar 3.4
Blok diagram alir proses konversi citra………...
16
Gambar 3.5
Blok diagram alir pemotongan citra………
18
Gambar 3.6
Blok diagram alir pengenalan plat nomor……….…..
20
Gambar 3.7
Blok diagram alir
proses pemisahan karakter……….
24
Gambar 3.8
Contoh gambar korelasi karakter………
25
Gambar 3.9
Blok diagram alir proses pengenalan karakter………
26
Gambar 3.10
Blok diagram alir data pemilik plat………...
27
Gambar 3.11 GUI untuk kamera
web……….
28
Gambar 3.12
GUI untuk pendeteksian nomor plat………..
29
Gambar 4.1
Masukan database kepemilikan………
30
Gambar 4.2
Tampilan menu pengujian kamera web..………..
33
Gambar 4.3
Tampilan menu hasil pengambilan citra………...
34
Gambar 4.4
Penentuan kandidat plat nomor………
35
Gambar 4.5
Pemotongan plat………...
36
Gambar 4.6
Hasil pemisahan karakter……….
37
Gambar 4.7
Hasil pengenalan plat nomor mobil………..
38
LAMPIRAN A
Tmp_0
Tmp_1
Tmp_2
Tmp_3
.
Tmp_4
Tmp_5
Tmp_6
Tmp_7
Tmp_8
Tmp_9
Tmp_10
Tmp_11
Tmp_12
Tmp_13
Tmp_14
Tmp_15
Tmp_20
Tmp_21
Tmp_22
Tmp_23
Tmp_24
Tmp_25
Tmp_26
Tmp_27
Tmp_28
Tmp_29
Tmp_30
Tmp_31
LAMPIRAN B
Project.m
clear all clc
proyek = figure('Color',[0.8 0.8 0.8], ... 'PaperPosition',[0 70 100 100], ... 'PaperUnits','points', ...
'Position',[100 70 500 122], ... 'Tag','fig11', ...
'ToolBar','none',... 'Menubar','none',... 'Numbertitle','off',... 'Name','Proyek');
tb_show = uicontrol('Parent',proyek, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'Callback','show', ...
'ListboxTop',0, ...
'Position',[220 25.75 120.5 16.5], ... 'String','Show My Webcam', ... 'Tag','Pushbutton9');
tb_tangkap = uicontrol('Parent',proyek, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'Callback','tangkap', ...
'ListboxTop',0, ...
'Position',[120 25.75 67.5 16.5], ... 'String','Capture', ...
'Tag','Pushbutton9');
tb_run = uicontrol('Parent',proyek, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'Callback','my_menu', ...
'ListboxTop',0, ...
'Position',[20 25.75 67.5 16.5], ... 'String','Run', ...
show.m
imaqhwinfo('winvideo'); imaqhwinfo;
imaqhwinfo('winvideo'); vid=videoinput('winvideo'); preview(vid)
tangkap.m
trig = 1;
set(vid,'FramesPerTrigger',trig); start(vid)
data=getdata(vid); size(data);
figure;
inputdata.m
clc; clear all;
tot_database=0; no_plat = '';pemilik='';
isi_database = figure('Color',[0.8 0.8 0.8], ... 'PaperPosition',[0 70 100 100], ...
'PaperUnits','points', ... 'Position',[90 100 400 572], ... 'Tag','fig11', ...
'ToolBar','none',... 'Menubar','none',... 'Numbertitle','off',... 'Name','Input Database');
input_noplat = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[120.5 325.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText4');
input_pemilik = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[120.5 280.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText5');
input_alamat = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[120.5 245.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText6');
input_tipe = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[120.5 210.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText8');
input_buat = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Tag','EditText9');
input_rakit = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[120.5 135.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText10');
input_silinder = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[120.5 95.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText11');
input_warna = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[320.5 325.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText12');
input_rangka = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[320.5 285.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText13');
input_mesin = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[320.5 245.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText14');
input_TNKB = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[320.5 205.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText15');
input_bbakar = uicontrol('Parent',isi_database, ... 'Units','points', ...
'Position',[320.5 165.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText16');
input_BPKB = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[320.5 125.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText17');
input_masalaku = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[320.5 85.75 80.25 20], ... 'Style','edit', ...
'Tag','EditText18');
t1 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[20 315 90.25 30.25], ... 'String','Masukkan Nomor Plat', ... 'Style','text', ...
'Tag','StaticText7');
t2 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[20 275 90.25 30.25], ... 'String','Masukkan Nama Pemilik', ... 'Style','text', ...
'Tag','StaticText8');
t3 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[20 235 90.25 30.25], ... 'String','Masukkan alamat', ... 'Style','text', ...
t5 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[20 200 90.25 30.25], ... 'String','Masukkan tipe', ... 'Style','text', ...
'Tag','StaticText11');
t6 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[20 165 90.25 30.25], ... 'String','Masukkan tahun buat', ... 'Style','text', ...
'Tag','StaticText12');
t7 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[20 130 90.25 30.25], ... 'String','Masukkan tahun rakit', ... 'Style','text', ...
'Tag','StaticText13');
t8 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[20 95 90.25 30.25], ... 'String','Masukkan isi silinder', ... 'Style','text', ...
'Tag','StaticText14');
t9 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[220.5 325.75 80.25 30], ... 'String','Masukkan warna', ...
t10 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[220.5 285.75 80.25 30], ... 'String','Masukkan no rangka', ... 'Style','text', ...
'Tag','StaticText16');
t11 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[220.5 245.75 80.25 30], ... 'String','Masukkan no mesin', ... 'Style','text', ...
'Tag','StaticText17');
t12 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[220.5 205.75 80.25 30], ... 'String','Masukkan warna TNKB', ... 'Style','text', ...
'Tag','StaticText18');
t13 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[220.5 165.75 80.25 30], ... 'String','Masukkan bahan bakar', ... 'Style','text', ...
'Tag','StaticText19');
t14 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[220.5 125.75 80.25 30], ... 'String','Masukkan BPKB', ...
t15 = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[220.5 85.75 80.25 30], ... 'String','Masukkan Masa Berlaku', ... 'Style','text', ...
'Tag','StaticText19');
tb_simpan = uicontrol('Parent',isi_database, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'Callback','simpan', ...
'ListboxTop',0, ...
'Position',[120 55.75 67.5 16.5], ... 'String','Simpan', ...
simpan.m
no_platx = ''; pemilikx = ''; alamatx = ''; tipex = ''; buatx = ''; rakitx = ''; silinderx = ''; warnax = ''; rangkax = ''; mesinx = ''; TNKBx = ''; bbakarx = ''; BPKBx = ''; masalakux = '';
no_platx = get(input_noplat,'string'); pemilikx = get(input_pemilik,'string'); alamatx = get(input_alamat, 'string'); tipex = get(input_tipe, 'string'); buatx = get(input_buat, 'string'); rakitx = get(input_rakit, 'string'); silinderx = get(input_silinder, 'string'); warnax = get(input_warna, 'string'); rangkax = get(input_rangka, 'string'); mesinx = get(input_mesin, 'string'); TNKBx = get(input_TNKB, 'string'); bbakarx = get(input_bbakar, 'string'); BPKBx = get(input_BPKB, 'string'); masalakux = get(input_masalaku, 'string'); tot_database = tot_database + 1;
database(1,tot_database,1).noplat = no_platx; database(1,tot_database,2).pemilik = pemilikx; database(1,tot_database,3).alamat = alamatx; database(1,tot_database,5).tipe = tipex; database(1,tot_database,6).buat = buatx; database(1,tot_database,7).rakit = rakitx; database(1,tot_database,8).silinder = silinderx; database(1,tot_database,9).warna = warnax; database(1,tot_database,10).rangka = rangkax; database(1,tot_database,11).mesin = mesinx; database(1,tot_database,12).TNKB = TNKBx; database(1,tot_database,13).bbakar = bbakarx; database(1,tot_database,14).BPKB = BPKBx; database(1,tot_database,15).masalaku = masalakux; save('database.mat', 'database','tot_database'); msgbox('DATA TELAH DISIMPAN','JEMMY','NONE')
prosescari.m
hasilll.m
hasill = figure('Color',[0.8 0.8 0.8], ... 'PaperPosition',[0 70 100 100], ... 'PaperUnits','points', ...
'Position',[100 100 500 572], ... 'Tag','fig11', ...
'ToolBar','none',... 'Menubar','none',... 'Numbertitle','off',...
'Name','Hasil Penelusuran Database'); tX1 = uicontrol('Parent',hasill, ...
'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[250 355 200.25 30.25], ...
'String','HASIL PENELUSURAN DATABASE', ... 'Style','text', ...
'Tag','StaticText7');
tX2 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[20 280 90.25 30.25], ... 'String','Nama Pemilik : ', ... 'Style','text', ...
'Tag','StaticText8');
tH2 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[110 280 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText14');
tX3 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'String','Alamat :', ... 'Style','text', ...
'Tag','StaticText9');
tH3 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[110 245 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText15');
tX4 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[20 210 90.25 30.25], ... 'String','Tipe :', ... 'Style','text', ...
'Tag','StaticText10');
tH4 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[110 210 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText16');
tX5 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[20 170 90.25 30.25], ... 'String','Tahun buat :', ...
'Style','text', ... 'Tag','StaticText12');
tH5 = uicontrol('Parent',hasill, ... 'Units','points', ...
'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[110 170 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText17');
tX6 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[20 130 90.25 30.25], ... 'String','Tahun rakit :', ...
'Style','text', ... 'Tag','StaticText13');
tH6 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[110 130 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText18');
tX7 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[20 90 90.25 30.25], ... 'String','Isi Silinder :', ...
'Style','text', ... 'Tag','StaticText14');
tH7 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[110 90 230.25 30.25], ... 'String','', ...
'Tag','StaticText19');
tX8 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[370 280 90.25 30.25], ... 'String','Warna : ', ...
'Style','text', ... 'Tag','StaticText15');
tH8 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[460 280 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText20');
tX9 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[370 240 90.25 30.25], ... 'String','No Rangka : ', ... 'Style','text', ...
'Tag','StaticText16');
tH9 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[460 240 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText21');
tX10 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',12, ... 'FontWeight','bold', ...
'Position',[370 200 90.25 30.25], ... 'String','No Mesin : ', ...
'Style','text', ... 'Tag','StaticText17');
tH10 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[460 200 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText22');
tX11 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[370 160 90.25 30.25], ... 'String','Warna TNKB : ', ... 'Style','text', ...
'Tag','StaticText18');
tH11 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[460 160 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText23');
tX12 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[370 120 90.25 30.25], ... 'String','Bahan Bakar : ', ... 'Style','text', ...
tH12 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[460 120 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText24');
tX13 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[370 80 90.25 30.25], ... 'String','BPKB : ', ...
'Style','text', ... 'Tag','StaticText20');
tH13 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[460 80 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText25');
tX14 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'FontWeight','bold', ...
'Position',[370 40 90.25 30.25], ... 'String','Masa Berlaku : ', ... 'Style','text', ...
'Tag','StaticText21');
tH14 = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName','Arial', ...
'HorizontalAlignment','Left',... 'FontSize',12, ...
'Position',[460 40 230.25 30.25], ... 'String','', ...
'Style','text', ... 'Tag','StaticText265');
tb_ok = uicontrol('Parent',hasill, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'Callback','close', ...
'ListboxTop',0, ...
'Position',[120 25.75 67.5 16.5], ... 'String','ok', ...
'Tag','Pushbutton9'); hasil = 'false';
nilai = 0; %pake = 0;
for i=1:tot_database,
nilai = strcmp(my_result,database(1,i,1).noplat); if nilai == 1
set(tH2,'String',database(1,i,2).pemilik); set(tH3,'String',database(1,i,3).alamat); set(tH4,'String',database(1,i,5).tipe); set(tH5,'String',database(1,i,6).buat); set(tH6,'String',database(1,i,7).rakit); set(tH7,'String',database(1,i,8).silinder); set(tH8,'String',database(1,i,9).warna); set(tH9,'String',database(1,i,10).rangka); set(tH10,'String',database(1,i,11).mesin); set(tH11,'String',database(1,i,12).TNKB); set(tH12,'String',database(1,i,13).bbakar); set(tH13,'String',database(1,i,14).BPKB); set(tH14,'String',database(1,i,15).masalaku); hasil = 'true';
nilai = 0; else
if (i==tot_database)&(nilai==0) if hasil==false
msgbox('TIDAK ADA DALAM DATABASE','JEMMY','none'); end;
get_img.m
clc; clear gbr1;
[namafile,direktori]=uigetfile('*.bmp','Buka file'); eval(['cd ''' direktori ''';']);
gbr1 = imread([direktori,namafile],'bmp'); size(gbr1)
%gbr1 = image(namafile); %gbr1 = rgb2gray(gbr2); colormap(gray);
if isrgb(gbr1)==1
gbr1 = rgb2gray(gbr1); end;
ori_image=imagesc(gbr1,... 'parent',ax1);
set(win1,'CurrentAxes',ax1); [lbr_im,pjg_im]=size(gbr1)
set(ed_file,'string',[direktori,namafile]);
break_img.m
%---% ROUTINE TO GET PLAT AND DIVIDE INTO CHARACTER % this routine generated base on signature method
%---clc;
figure(2); colormap(gray); [brs,klm]=size(gbr1); dvd=6;
a = (brs-rem(brs,dvd))/dvd; aw = 1;
%maks=0; %--->untuk plat terang maks=1000000; %--->untuk plat gelap
%---% BREAK IMAGE AND GET CANDIDATE FOR PLAT %---for i=1:dvd,
ak = i*a;
pc1=gbr1(aw:ak,:); subplot(dvd,2,i+(i*1)-1); imagesc(pc1); %color set(gca,'fontsize',6); [brs,klm]=size(pc1);
thresh=2*(sum(sum(pc1))/(brs*klm)); pc1=(pc1<=thresh);
sum1=sum(sum(pc1));
%--- cari kandidat untuk plat dg latar terang % if (maks <= sum1)
% end;
%--- cari kandidat untuk plat dg latar hitam if (maks >= sum1)
maks = sum1; cand = pc1; end;
disp(['tresh, peak & min ' num2str(i) ' = ' num2str(thresh) ', ' num2str(sum1) ' & ' num2str(maks) ]);
aw = ak + 1 ;
% subplot(dvd,2,i+(i*1)-1); % imagesc(pc1); %black&white % set(gca,'fontsize',6); subplot(dvd,2,i+(i*1)); plot(sum(pc1),'-r'); set(gca,'fontsize',6); end;
%cand=pc1;
set(win1,'CurrentAxes',ax2); im=imagesc(cand,'parent',ax2);
%---% CROP PLATE FROM CANDIDATE IMAGES %---clc;
[bar,kol]=size(cand); colormap(gray); cw=sum(cand);
%--- left & right cropping
sls=cw-max(cw);% dikurangi dengan nilai maksimum ridge kk=[sls 0];
bkiri=1;
bkanan=length(kk);
%mencari nilai terkecil dr kiri i=1;
while kk(i) > -3, bkiri=i; i=i+1; end;
%mencari nilai terkecil dari kanan i=kol;
while kk(i) > -3, bkanan=i; i=i-1; end;
ccand1=cand; ccand1(:,1:bkiri)=[];
ccand1(:,bkanan-bkiri-1:kol-bkiri)=[]; [br,kl]=size(ccand1);
%--- top & bottom cropping rw=sum(ccand1');
sls=rw-rw1; ab=sls; maks=0;
for i=1:length(sls)-1, if sls(i) >= maks, maks=sls(i); catas=i-1; batas=i; end; end;
sls(1:catas)=[]; for i=1:length(sls)-1, if sls(i) == min(sls), bbawah= i; end;
end;
ccand2=ccand1; ccand2(1:batas,:)=[]; size(ccand2)
ccand2(bbawah:bar-catas-1,:)=[]; set(win1,'CurrentAxes',ax3); im=imagesc(ccand2,'parent',ax3); plat=ccand2;
get_char.m
%---% CROP CHARACTERS FROM PLATE NUMBER IMAGES
%---clc; figure(2);
[bar,kol]=size(ccand2); cw=sum(ccand2); my_result=[]; punya ='';
%---%--- left & right cropping %mencari nilai terbesar dr kiri bkiri=[1];
bkanan=[]; shift = 0;
for i=1:length(cw), if shift==0,
if cw(i)==max(cw), if cw(i+1)==cw(i), shift=1;
bkanan=[bkanan i]; end;
end; else
bkiri=[bkiri i]; end;
end; end; end;
%generate char from plat clear sls;
tinggi=0;
for i=1:length(bkanan), subplot(1,length(bkanan),i); chr=ccand2(:,bkiri(i):bkanan(i)); %enhanced cropping for each character %--- top & bottom cropping rw=sum(chr');
filter=((15/100)*max(rw)); rw=[max(rw) rw max(rw)]; rw=(abs(rw-max(rw))>filter).*rw; rw1=[rw max(rw)]; rw1(1)=[]; sls=rw-rw1; batas=0; bbawah=length(sls); ii=1;
while (sls(ii) == 0),
batas=ii+1; % batas atas ii=ii+1;
end;
ii=length(sls)-1; while (sls(ii) == 0), ii=ii-1;
bbawah=ii+1; % batas bawah end;
batas; bbawah;
n_tinggi = bbawah-batas; if n_tinggi < (15*length(sls)/100), n_tinggi=tinggi(length(tinggi)); end;
tinggi=[tinggi n_tinggi];
rat_tinggi = floor(sum(tinggi)/(length(tinggi)-1)); if abs(bbawah-batas-rat_tinggi)>20, bbawah=batas+rat_tinggi; end; chr(1:batas,:)=[]; [bar,kol]=size(chr); chr(bbawah-batas:bar,:)=[]; imagesc(chr); %hasil akhir colormap(gray);
axis off;
bp=sum(sum(chr))/(bar*kol);
% disp(['maks black= ' num2str(bp) '%']); if bp<=0.70,
ocr=my_ocr(chr);
disp(['cek 4 char =' num2str(i) ' is ' ocr]); my_result=[my_result ocr];
end;
%saving result into different file of char end;
set(ed_result,'String',my_result); %my_result
my_ocr
function [ocr]=my_ocr(im_char)
%fungsi ini dibuat untuk melakukan pengenalan karakter load hrf_tmp.mat;
ocr=im_char; maks=0; i_ocr=0;
[br,kl]=size(ocr); for i=0:35,
eval(['[b0,k0]=size(tmp_' num2str(i) ');']);
%jika iamage yang dikenali ukurannya lebih kecil dari template dilakukan resize image if (b0>br)|(k0>kl)
ocr_r= IMRESIZE(ocr,[b0+1 k0+1]);
eval(['h = normxcorr2(tmp_' num2str(i) ',ocr_r);']); %--disp('resize');
else
eval(['h = normxcorr2(tmp_' num2str(i) ',ocr);']); end;
% disp(['i=' num2str(i) 'maks=' num2str(max(max(h)))]); if maks<max(max(h)),
maks=max(max(h)); i_ocr=i;
case 20 ocr = 'K'; case 21 ocr = 'L'; case 22 ocr = 'M'; case 23 ocr = 'N'; case 24 ocr = 'O'; case 25 ocr = 'P'; case 26 ocr = 'Q'; case 27 ocr = 'R'; case 28 ocr = 'S'; case 29 ocr = 'T'; case 30 ocr = 'U'; case 31 ocr = 'V'; case 32 ocr = 'W'; case 33 ocr = 'X'; case 34 ocr = 'Y'; case 35 ocr = 'Z'; otherwise
my_ocr2.m
function [ocr]=my_ocr2(im_char)
%fungsi ini dibuat untuk melakukan pengenalan karakter load hrf_tmp.mat;
ocr=im_char; maks=0; i_ocr=0;
[br,kl]=size(ocr); for i=0:35,
eval(['[b0,k0]=size(tmp_' num2str(i) ');']);
%jika image yang dikenali ukurannya lebih kecil dari template dilakukan resize image if (b0>br)|(k0>kl)
ocr_r= IMRESIZE(ocr,[b0+1 k0+1]);
eval(['h = normxcorr2(tmp_' num2str(i) ',ocr_r);']); %--disp('resize');
else
eval(['h = normxcorr2(tmp_' num2str(i) ',ocr);']); end
subplot(6,6,i+1); imagesc(h); colormap(gray); axis off;
%---switch i
case 25 txt = 'P'; case 26 txt = 'Q'; case 27 txt = 'R'; case 28 txt = 'S'; case 29 txt = 'T'; case 30 txt = 'U'; case 31 txt = 'V'; case 32 txt = 'W'; case 33 txt = 'X'; case 34 txt = 'Y'; case 35 txt = 'Z'; otherwise txt = num2str(i); end
title(['by tmp ' txt]);;
disp(['i=' num2str(i) 'maks=' num2str(max(max(h)))]); if maks<max(max(h)),
maks=max(max(h)); i_ocr=i;
ocr = 'J'; case 20 ocr = 'K'; case 21 ocr = 'L'; case 22 ocr = 'M'; case 23 ocr = 'N'; case 24 ocr = 'O'; case 25 ocr = 'P'; case 26 ocr = 'Q'; case 27 ocr = 'R'; case 28 ocr = 'S'; case 29 ocr = 'T'; case 30 ocr = 'U'; case 31 ocr = 'V'; case 32 ocr = 'W'; case 33 ocr = 'X'; case 34 ocr = 'Y'; case 35 ocr = 'Z'; otherwise
my_menu.m
%clear all; %clc;
load database;
win1 = figure('Color',[0.8 0.8 0.8], ... 'PaperPosition',[18 180 576 432], ... 'PaperUnits','points', ...
'Position',[20 100 900 472], ... 'Tag','Fig1', ...
'ToolBar','none',... 'Menubar','none',... 'Numbertitle','off',... 'Name','My Program'); ax1 = axes('Parent',win1, ... 'Units','pixels', ...
'CameraUpVector',[0 1 0], ... 'Color',[0 0 0], ...
'Fontsize',6,...
'Position',[21 96 385 308], ... 'Tag','Axes1', ...
'XColor',[0 0 0], ... 'YColor',[0 0 0], ... 'ZColor',[0 0 0]);
xl_ax1 = text('Parent',ax1, ... 'Color',[0 0 0], ...
'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[0.4973958333333333 -0.07817589576547235 9.160254037844386], ... 'Tag','Axes1Text4', ...
'VerticalAlignment','cap');
set(get(xl_ax1,'Parent'),'XLabel',xl_ax1); yl_ax1 = text('Parent',ax1, ...
'Color',[0 0 0], ... 'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[-0.07552083333333333 0.495114006514658 9.160254037844386], ... 'Rotation',90, ...
'Tag','Axes1Text3', ...
'VerticalAlignment','baseline');
set(get(yl_ax1,'Parent'),'YLabel',yl_ax1); ax2 = axes('Parent',win1, ...
'Units','pixels', ...
'CameraUpVector',[0 1 0], ... 'Color',[0 0 0], ...
'Fontsize',6,...
'Position',[437 326 317 45], ... 'Tag','Axes2', ...
'XColor',[0 0 0], ... 'YColor',[0 0 0], ... 'ZColor',[0 0 0]);
xl_ax2 = text('Parent',ax2, ... 'Color',[0 0 0], ...
'HorizontalAlignment','center', ...
'Position',[0.4968354430379747 -0.5454545454545454 9.160254037844386], ... 'Tag','Axes2Text4', ...
'VerticalAlignment','cap');
set(get(xl_ax2,'Parent'),'XLabel',xl_ax2); yl_ax2 = text('Parent',ax2, ...
'Color',[0 0 0], ... 'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[-0.09177215189873422 0.4772727272727271 9.160254037844386], ... 'Rotation',90, ...
'Tag','Axes2Text3', ...
'VerticalAlignment','baseline');
set(get(yl_ax2,'Parent'),'YLabel',yl_ax2); ax3 = axes('Parent',win1, ...
'Units','pixels', ...
'CameraUpVector',[0 1 0], ... 'Color',[0 0 0], ...
'Fontsize',6,...
'Position',[435 209 230 60], ... 'Tag','Axes3', ...
'XColor',[0 0 0], ... 'YColor',[0 0 0], ... 'ZColor',[0 0 0]);
xl_ax3 = text('Parent',ax3, ... 'Color',[0 0 0], ...
'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[0.4978165938864627 -0.406779661016949 9.160254037844386], ... 'Tag','Axes3Text4', ...
'VerticalAlignment','cap');
set(get(xl_ax3,'Parent'),'XLabel',xl_ax3); yl_ax3 = text('Parent',ax3, ...
'Color',[0 0 0], ... 'HandleVisibility','off', ...
'HorizontalAlignment','center', ...
'Position',[-0.1266375545851528 0.4745762711864408 9.160254037844386], ... 'Rotation',90, ...
'Tag','Axes3Text3', ...
'VerticalAlignment','baseline');
set(get(yl_ax3,'Parent'),'YLabel',yl_ax3); ed_file = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[10.5 27.75 221.25 15], ... 'Style','edit', ...
'Tag','EditText1');
tb_file = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'ListboxTop',0, ...
'Position',[237 27 66 16.5], ... 'String','Car Image', ...
t1 = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'FontName',' ''Arial', ...
'FontSize',14, ... 'FontWeight','bold', ...
'Position',[14.25 315 527.25 23.25], ...
'String','Proses Identifikasi Plat Nomor Mobil', ... 'Style','text', ...
'Tag','StaticText1');
t2 = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'HorizontalAlignment','left', ...
'ListboxTop',0, ...
'Position',[327 284.25 172.5 17.25], ... 'String','Kandidat Gambar', ...
'Style','text', ... 'Tag','StaticText2');
t3 = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'HorizontalAlignment','left', ...
'ListboxTop',0, ...
'Position',[327 200.25 169.5 20.25], ... 'String','Ekstraksi Plat Nomor', ... 'Style','text', ...
'Tag','StaticText3');
t4 = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'HorizontalAlignment','left', ...
'ListboxTop',0, ...
'Position',[326.25 108 78.75 15.75], ... 'String','Hasil Identifikasi', ...
'Style','text', ... 'Tag','StaticText4');
ed_result = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0 0 0], ... 'FontSize',20, ...
'FontWeight','bold', ... 'ForegroundColor',[1 1 1], ... 'ListboxTop',0, ...
'Position',[326.25 75 173.25 32.25], ... 'String','', ...
'Style','edit', ... 'Tag','EditText2');
tb_plat = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'ListboxTop',0, ...
'Position',[327.75 27 70.5 17.25], ... 'String','Find Plate', ...
tb_ocr = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'ListboxTop',0, ...
'Position',[402 27 67.5 17.25], ... 'String','Run OCR', ...
'callback','GET_CHAR',... 'Tag','Pushbutton3');
tb_close = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'Callback','Close', ...
'ListboxTop',0, ...
'Position',[473.25 27.75 67.5 16.5], ... 'String','Close', ...
'Tag','Pushbutton4');
tby = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'ForegroundColor',[0 0 1], ...
'ListboxTop',0, ...
'Position',[408 314.25 108 12], ... 'String',' By : JEMMY', ... 'Style','text', ...
'Tag','StaticText5');
tpro = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'ForegroundColor',[0 0 1], ...
'ListboxTop',0, ...
'Position',[416.25 326.25 108 12], ... 'String','Task : TUGAS AKHIR', ... 'Style','text', ...
'Tag','StaticText5');
tb_cari = uicontrol('Parent',win1, ... 'Units','points', ...
'BackgroundColor',[0.752941176470588 0.752941176470588 0.752941176470588], ... 'Callback','hasilll', ...
'ListboxTop',0, ...
'Position',[544 150.75 67.5 25.5], ... 'String','Cari', ...
'Tag','Pushbutton6');
gbr1 = frame2im(gambar); colormap(gray);
if isrgb(gbr1)==1
gbr1 = rgb2gray(gbr1); end;
ori_image=imagesc(gbr1,... 'parent',ax1);
1
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Pada zaman sekarang, semakin banyak orang yang memiliki kendaraan
bermotor. Setiap kendaraan harus memiliki tanda pengenal dalam bentuk plat nomor.
Plat nomor dapat menunjukkan asal kendaraan tersebut berdomisili.
Plat nomor kendaraan selain menunjukkan asal daerah juga dapat diketahui
identitas pemilik kendaraan tersebut. Informasi data kepemilikan biasanya tercatat di
kepolisian setempat, sehingga apabila suatu kejadian yang melibatkan suatu
kendaraan, informasi kepemilikan kendaraan tersebut dapat dilihat. Seiring dengan
banyak pemilik kendaraan, sehingga apabila pencarian data kepemilikan dilakukan
secara manual akan menghabiskan waktu, dengan memanfaatkan teknologi
pengolahan citra dan teknologi komputer, proses pencarian dapat dilakukan lebih
cepat.
Pada tugas akhir ini akan dibuat suatu sistem yang akan dapat membaca
nomor plat melalui kamera web, kemudian plat nomor tersebut akan diidentifikasi
dan dapat diketahui pemilik dari plat nomor.
1.2 Permumusan Masalah
Bagaimana membuat aplikasi perangkat lunak menggunakan kamera web
2
1.3 Tujuan
Tujuan dari tugas akhir ini yaitu membuat aplikasi perangkat lunak
menggunakan kamera web yang dapat mencocokkan nomor plat kendaraan dengan
database yang telah ada.
1.4 Pembatasan Masalah
Dalam tugas akhir ini, pembatasan dibatasi sampai hal-hal berikut yaitu :
1.
Hanya dapat mencari plat nomor kendaraan pribadi yang telah ada di
database.
2.
Diasumsikan plat nomor pemilik bukan hasil modifikasi.
3.
Diasumsikan pada bagian kendaraan hanya menggunakan satu plat nomor
asli.
4.
Data pemilik plat nomor kendaraan diasumsikan selalu up to date.
5.
Realisasi dilakukan dalam bentuk simulasi dengan menggunakan Matlab 7.
6.
Proses pengambilan gambar melalui kamera web diasumsikan pada jarak
pantau tertentu.
1.5 Sistematika Penulisan.
Sistematika penulisan tugas akhir ini dibagi menjadi 5 bab, yaitu:
Bab 1 : Pendahuluan.
Bab ini membahas tentang latar belakang, perumusan masalah, tujuan,
pembatasan masalah, dan sistematika penulisan.
Bab 2 : Landasan Teori.
Bab ini membahas tentang landasan teori dari pengolahan citra, dan
3
Bab 3 : Perancangan Perangkat Lunak.
Bab ini membahas tentang perancangan perangkat lunak dari aplikasi kamera
web untuk mengidentifikasi nomor plat mobil.
Bab 4 : Pengujian Perangkat Lunak.
Bab ini membahas tentang pengujian perangkat lunak dari aplikasi kamera
web untuk mengidentifikasi nomor plat mobil.
Bab 5 : Kesimpulan dan Saran.
42
BAB 5
KESIMPULAN DAN SARAN
5.1
Kesimpulan
1.
Dalam tugas akhir ini, program yang direalisasi mempunyai tingkat
kebehasilan pengenalan nomor plat sebesar 50 %
2.
Pengenalan tiap karakter pada nomor plat kendaraan adalah 75.71 %
3.
Kesalahan pembacaan karakter disebabkan banyaknya kemiripan korelasi
karakter yang satu dengan yang lain, contohnya karakter 4 diidentifikasi
sebagai Z.
5.2
Saran
1.
Untuk mendapatkan gambar yang lebih kontras, dapat dilakukan proses
pre-processing, misalnya meningkatkan tingkat kualitas kekontrasan
gambar.
2.
Untuk
dapat
diaplikasikan
pada
keadaan
sebenarnya,
perlu
dipertimbangkan proses waktu pengolahan, misalnya pengolahan gambar
DAFTAR PUSTAKA
1.
Alireza, Taufan, “
Pengenalan Nomor Plat Pada Kendaraan Secara
Statistik
”,
Universitas Kristen Maranatha, Bandung 2005.
2.
ClayM. Thompson and Loren Shure, “
Image Processing-Toolbox for use
with Matlab
”, The MathWorks,Inc., 1995.
3.
Erturk, Sarp,
“
Digital Image Processing
”, University Of Kocaeli, February
2003.
4.
M.A.Sid-
Ahmed, “
Image Processing Theory, Algorithms, and
Architecture
” McGraw Hill, Inc.
5.
The Mathwork, Inc,
“Image Processing Toolbox User’s Guide,
The
Mathworks, Inc, 1998.
6.
http://www.ilmukomputer.com
7.
http://www.platerecognition.info