Nhận dạng biển số
-
Upload
nguyen-quang-thang -
Category
Documents
-
view
223 -
download
0
Transcript of Nhận dạng biển số
-
8/17/2019 Nhận dạng biển số
1/25
BỘ CÔNG THƯƠNGTRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TINNGHÀNH KHOA HỌC MÁY TÍNH
BÀI TẬP MÔN: Lý !"#$ %!&% '(%)
Đ* TÀI: N!&% '(%) +,-% ./ 01 23%) '4%) 5(%) %676%8
Giáo viên hướng dẫn:
Nhóm thực hiện : nhóm 10
Thành viên: 1. Đỗ Văn T !"#
$.Đ%ng Ng&c T'(n
). V* Ng&c +oàn
,. -ê Văn i/n
+à ni .......... ngà........tháng.........năm $011
1
-
8/17/2019 Nhận dạng biển số
2/25
M49 L49
I.Gi, !,;" !; !/%) %!&% '(%) +,-% ./ 01
-
8/17/2019 Nhận dạng biển số
3/25
2.1.S/ hóa ?nh đ@u vào
-
8/17/2019 Nhận dạng biển số
4/25
mt cái Anh th5 Chác hHn o với >ư' t4E hB in (n mt vài CD tự. "hInh v5 thJ mà việc
nh6n d7ng 8i9n ; à 4(t cKn thiJt và c*ng Chá >à L'Bn t4&ng.
Giới thiệu về ảnh biển số xe
Mnh 8i9n ; à mt 8i9n ; 7i chR chOP có mỗi cái 8i9n ; cSB à PhAi tách @ưc v?ng chR chXB 8i9n ; 4B thi và ch'9n thành mt cái Anh mới @=mvào hệ th;ng nh6n d7ng nà @9 D.
V6 th5 Anh à Anh @Z @ưc D mt >Kn 4[i
chX Chng PhAi >à tự nhiên mà có.
Cơ sở dữ liệu
"3 dE >iệ' >à các mB t46n CIch thước 10à mB t46n chR chXB các ; 0 và 1.
4
-
8/17/2019 Nhận dạng biển số
5/25
VI dO mB t46n cSB ; 0 như B':
_0`0`1`1`1`1`1`1`0`0a`_0`1`1`1`1`1`1`1`1`0a`_1`1`1`1`1`1`1`1`1`1a`
5
-
8/17/2019 Nhận dạng biển số
6/25
_1`1`1`1`0`0`1`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`
_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`_1`1`1`0`0`0`0`1`1`1a`
_1`1`1`1`0`0`1`1`1`1a`_0`1`1`1`1`1`1`1`1`0a`_0`0`1`1`1`1`1`1`0`0aa
"3 dE >iệ' nà d?ng @9 >àm g5b Nó d?ng @9 @;i ánh t5m 4B các CD tự t4ong
8i9n ;.
22. NHẬN ẠNG CH S CH CÁI À KU TV
1. N7P Anh @K' vàoTB Y dOng cng cO it'4=Fo< t4ong Vi'B> $00 @9 thực hiện n7P Anh @K' vào.
6
-
8/17/2019 Nhận dạng biển số
7/25
+àm n7P Anh @K' vào:
private void btnNap_Click(object sender, EventArgs e ! t"is#Enabled $ %alse& 'penile)ialog 'penile)ialog $ ne* 'penile)ialog(& 'penile)ialog#+nitial)irector $ Application#-tart.p/at" 0+age&
'penile)ialog#ilter $ itap %iles (#bp#bp7peg %iles(#jpg#jpgAll valid %iles#& 'penile)ialog#ilter+nde8 $ 2& 'penile)ialog#9estore)irector $ tr.e&
i% ()ialog9es.lt#': $$ 'penile)ialog#-"o*)ialog( ! tr ! _itap $
(itapitap#roile('penile)ialog#ileNae, %alse& t"is#ptbAn"goc#+age $ ne* itap(_itap& t"is#ptbAn"goc#-i;e#Enabled $ tr.e& t"is#grbC"acNang#Enabled $ %alse& t"is#btnN"an)ang#Enabled $ tr.e&
int i $ int#/arse(t8t
-
8/17/2019 Nhận dạng biển số
8/25
$. Nh6n d7ng Anh
$.1. Số hóa ảnh đầu vàoeB' Chi Ph^n ngưfng Anh @K' vào thành Anh chR với hBi mà' áng và t;i th5 tB U thực
hiện 8ước ch'9n Anh thành mB t46n tư3ng Xng các PhKn tY cSB mB t46n c*ng chR có hBi
giá t4 >à 0 và 1.
Mnh @K' vào có CIch cf thJ nào th5 mB t46n có CIch cf như thJ.
+àm ; hóB Anh như B':
P'8>ic tBtic int` eo+oBjnh!FitmBP 8# _ FitmBPBtB 8mBtB k 8.-ocCFit!n=l =ctBng>=!0` 0` 8.idth` 8.+=ight#`2mBg=-ocCod=.=Bd4it=`ipo4mBt.po4mBt$,8PPg8#q int t4id= k 8mBtB.et4id=q et=m.2ntt4 ecBn0 k 8mBtB.ecBn0q int` mBt4BnBnhgoc k n=l int8.idth` 8.+=ightq 'nBr=
_ 8t=s P k ! 8t=s#!voids#ecBn0q int nrr=t k t4id= u 8.idth s )q ro4 !int k 0q 8.+=ightq ww# _ ro4 !int < k 0q < 8.idthq
-
8/17/2019 Nhận dạng biển số
9/25
$.$. Loại bỏ viền đenFi9n ; ớn nh vào Ch'ng @=n 8Bo L'Bnh 8i9n
; chInh v5 thJ mà tB cKn >o7i 8y Ch'ng nà 4B Chyi mB t46n Anh. zhi @ó t4ong mB t46n
Anh U chR cWn >7i n{n và CD tự.
bool tik".ng $ tr.e&bool "angtren $ tr.e, "angd.oi $ tr.e, cottrai $ tr.e, cotp"ai $ tr.e& *"ile (tik".ng ! i% ("angtren@@(A_8,A_KL(_8,A_ ! "angtren $ %alse& %or (int i $ A_8& i M _801& i00
i% (
-
8/17/2019 Nhận dạng biển số
10/25
$.). Dò biên để xác định vị tr t!n" #$ t%
Đ9 ( Ch'ng h5nh chE nh6t 8Bo
L'Bnh CD tự @ó:
p.blic static intOP )oien(intO,P b, int 8, int ! intOP ket[.a $ ne* intO4P& int
-
8/17/2019 Nhận dạng biển số
11/25
case 1H a $ bO8 0 1, P& break& case 2H a $ bO8 0 1, 0 1P& break& case 3H a $ bO8, 0 1P& break& case 4H a $ bO8 K 1, 0 1P& break& case 5H a $ bO8 K 1, P& break& case 6H a $ bO8 K 1, K 1P& break& case IH a $ bO8, K 1P& break& de%a.ltH a $ bO8 0 1, K 1P& break& G i% (a $$ 1 !
c"eck2 $ %alse& s*itc" (n ! case 1H 800& n $ J& break& case 2H 800& 00& n $ J& break& case 3H 00&
n $ 2& break& case 4H 8KK& 00& n $ 2& break& case 5H 8KK& n $ 4& break& case 6H 8KK& KK& n $ 4& break&
case IH KK& n $ 6& break& de%a.ltH 800& KK& n $ 6& break&
11
-
8/17/2019 Nhận dạng biển số
12/25
G G else ! i% (n $$ J n $ 1& else n00& G G i% (8 M
-
8/17/2019 Nhận dạng biển số
13/25
i% (
-
8/17/2019 Nhận dạng biển số
14/25
@@ngan $ tr.e& @@*"ile (ngan @@! @@ ngan $ %alse& @@ n.ap"ai00& @@ %or (int i $ a8 0 1& i M _& i00 @@ i% (
-
8/17/2019 Nhận dạng biển số
15/25
c".oi 0$/rocess+age#)oi-an"so(/rocess+age#c".an182(iệ'
$.|. ,ối +ánh và trả #-t .uả nh/n 0ạn"
T4ong 8i9n ; àcKn thiJt.
T4ong 8iJn ; chR có mt chE cWn >7i >à ; cA` tB >7i @i t5m t\ng CD tự th=o t\ngv?ng v5 v6 việc à ; hB chE th5 @Z có }n 4[i.
15
-
8/17/2019 Nhận dạng biển số
16/25
@@ c".Un Bi t n" 2 D. sang a trn t]mng ng# p.blic static intO,P -ooaAn"(itap b !
itap)ata b)ata $ b#>ockits(ne* 9ectangle(, , b#idt",b#eig"t, +age>ock
-
8/17/2019 Nhận dạng biển số
17/25
i% (9k[ L ket[.a!
ket[.a $ 9k[& so $i&G
G
i% (ket[.a M 16
-
8/17/2019 Nhận dạng biển số
18/25
case 6H ret.rn w-w& case IH ret.rn w?w& case JH ret.rn w=w& de%a.ltH ret.rn wxw& G
G
@@tac" doi t.ong va c".yn 182 p.blic static intO,P c".an182(intO,P b, intOP a@@8, BT rTngn" BV. vDo ! intO,P ket[.atac"$ne* intOaO1P K aOP 0 1,aO3P K aO2P 0 1P& %or (int j $ & j M$ (aO3P K aO2P& j00 %or (int i $ & i M$ (aO1P K aOP& i00
ket[.atac"Oi, jP $ bOi 0 aOP, j 0 aO2PP&
intO,P ket[.a $ ne* intO1, 2P&
do.ble tile_8 $ (aO1PKaOP @ 1& do.ble tile_ $ (aO3PKaO2P @ 2& int 8et $ (int((tile_8 tile_ @ 2&
int n, , k, ", de $ & %or (int $ & M 2& 00 ! n $ (int(tile_ & $ (int(tile_ ( 0 1&
%or (int 8 $ & 8 M 1& 800 ! k $ (int(tile_8 8&
" $ (int(tile_8 (8 0 1& de $ & %or (int j $ n& j M & j00 %or (int i $ k& i M "& i00 de 0$ ket[.atac"Oi, jP& i% (de L 8et ket[.aO8, P $ 1& else ket[.aO8, P $ & G G
ret.rn ket[.a& G
p.blic static bool rig"tNess(itap b, int nrig"tNess ! i% (nrig"tNess M K255 nrig"tNess L 255 ret.rn %alse& int nal $ &
1J
-
8/17/2019 Nhận dạng biển số
19/25
itap)ata b)ata $ b#>ockits(ne* 9ectangle(, , b#idt",b#eig"t, +age>ock
-
8/17/2019 Nhận dạng biển số
20/25
). T;i ư' hóB @i9m Anh @9 nh6n d7ng Chi ri>= Anh Chng @Sch(t >ưng
Đ9 hệ th;ng nh6n d7ng @ưc chInh
-
8/17/2019 Nhận dạng biển số
21/25
p 0$ n'%%set& G G b#=nlockits(b)ata& ret.rn tr.e&
G
19n" "iả) đ: +án" cho ảnhTăng giAm @ áng vào @ tư3ng PhAn cho Anh @9 >àm n~i 86t các chE ; >ên Chi
( Ph^n ngưfng U cho 4B Anh có ch(t >ưng t;t h3n.
@@ "D t}ng gi BT s\ng c"o n"#
p.blic static bool rig"tNess(itap b, int nrig"tNess ! i% (nrig"tNess M K255 nrig"tNess L 255 ret.rn %alse& int nal $ & itap)ata b)ata $ b#>ockits(ne* 9ectangle(, , b#idt",b#eig"t, +age>ock
-
8/17/2019 Nhận dạng biển số
22/25
G p 0$ n'%%set& G G b#=nlockits(b)ata& ret.rn tr.e&
G
L;c nhi
-
8/17/2019 Nhận dạng biển số
23/25
-oBd Anh:
Nh6n d7ng:
23
-
8/17/2019 Nhận dạng biển số
24/25
NJ' m';n n^ng cBo ch(t >ưng Anh:
TB Y dOng nt ‚n^ng cBo Anhƒ
-c nà các chXc năng cSB n^ng cBo U hiện >ên @9 D Anh @K' vào và m';n
tiJP tOc nh6n d7ng th5 nh(n „
-
8/17/2019 Nhận dạng biển số
25/25
Đ…N+ G2… +2†x ‡xˆT V‰ zŠT -x‹N
N!=%) W,-5 9X% !(% 9!$
‡Y >D với @ chInh inh tinh!V: @ áng L'á cBo U Chng nh6n d7ng @ưc#
N!=%) % W 9X% ,$Z 49
"Ai tiJn t;c @ nh6n d7ng
"Ai tiJn th6t toán dW 8iên và @;i ánh