Professional Documents
Culture Documents
TP H Ch Minh , 201 1
c lp T do Hnh phc
Thc hnh:
TP H Ch Minh, ngy
thng
nm 2011
ng Trng Sn
Trn Tin c
LI CM N
ii
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
TP H Ch Minh, ngy
thng
nm 2011
iii
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
TP H Ch Minh, ngy
thng
nm 2011
iv
MC LC
NHIM V THC HIN KHA LUN TT NGHIP ................................................................ i
LI CM N ....................................................................................................................... ii
NHN XT CA GIO VIN HNG DN .......................................................................... iii
NHN XT CA GIO VIN PHN BIN .............................................................................. iv
MC LC............................................................................................................................. v
DANH MC HNH ............................................................................................................. viii
DANH MC BIU .......................................................................................................... ix
M u ............................................................................................................................... 1
Vn thc t................................................................................................................. 1
Mc ch, i tng v phm vi nghin cu .................................................................... 1
B cc ca bo co .......................................................................................................... 5
1
1.1.1
1.1.2
1.2
1.3
Hm xc sut......................................................................................................... 9
1.4
Hm tch ly ........................................................................................................ 10
1.5
1.5.1
Kz vng ........................................................................................................ 10
1.5.2
1.6
1.7
1.7.1
nh ngha .................................................................................................... 17
1.7.2
1.8
1.9
1.10
c lng ....................................................................................................... 21
1.11
2.2
2.2.1
2.2.2
2.2.3
2.2.4
V d dn nhp ............................................................................................. 29
2.2.5
2.3
2.3.1
2.3.2
2.3.3
2.4
3
B lc Kalman ..................................................................................................... 32
H mu HSV ........................................................................................................ 43
3.1.1
nh ngha .................................................................................................... 43
3.1.2
3.2
3.3
3.4
Thit k ............................................................................................................... 50
4.1.1
4.1.2
B o ........................................................................................................... 52
4.2
Ci t................................................................................................................. 53
4.2.1
4.2.2
Cc on m chnh ....................................................................................... 56
Kt Lun ............................................................................................................................ 70
V l thuyt ................................................................................................................... 70
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
vi
V ng dng .................................................................................................................. 70
Hng pht trin........................................................................................................... 70
Ph Lc.............................................................................................................................. 71
Hng dn ci t OpenCV 2.1 cho project Winform CLR, Visual Studio 2008 C++ ........ 71
TI LIU THAM KHO ....................................................................................................... 77
vii
DANH MC HNH
Hnh 0-1 Phn mu vng v hng ca cy bt s c theo di .......................................... 2
Hnh 0-2 Theo di i tng ............................................................................................... 2
Hnh 0-3 Dng theo di chuyn ng v hnh t camera. ............................................... 3
Hnh 0-4 nh kt qu ca thao tc v qua camera ............................................................... 3
Hnh 0-5 Zoom nh bng cch iu khin cc vt th .......................................................... 4
Hnh 0-6 Kt qu ca vic zoom nh .................................................................................... 4
Hnh 1.6-1 Cc phn phi xc sut v " nhn". ng gia: phn phi chun. ........... 17
Hnh 2.3-1 Tm tt qu trnh lm vic ca lc Kalman ....................................................... 39
Hnh 3.1-1 Hnh nn ngc biu din h mu HSV ............................................................ 43
Hnh 3.1-2 Hnh trn biu din cc sc mu (H: 0-360) v bo ha (S: 0-1). Mu : H=0,
mu xanh l: H=120, mu xanh dng: H=240 .................................................................. 43
Hnh 4.2-1 Ca s iu khin ............................................................................................. 53
Hnh 4.2-2 Ca s camera hin kt qu ca chc nng theo di ........................................ 53
Hnh 4.2-3 Ca s camera hin kt qu ca chc nng v ................................................. 54
Hnh 4.2-4 nh kt qu ca thao tc v qua camera trn Khung nhn ................................ 54
Hnh 4.2-5 Zoom nh bng cch iu khin cc vt th ..................................................... 55
Hnh 4.2-6 Kt qu ca vic zoom nh trong Khung nhn ................................................... 55
Hnh PL-0-1 Cu hnh CMake 2.8.3..................................................................................... 71
Hnh PL-0-2 To project CLR Windows Forms Application .................................................. 72
Hnh PL-0-3 Thm item ...................................................................................................... 73
Hnh PL-4 Thm menu ....................................................................................................... 73
Hnh PL-5 Kt ca vic ci t v chy thnh cng mt chng trnh Winform dng
OpenCV ............................................................................................................................. 76
viii
DANH MC BIU
Biu 1.6-1 Phn phi xc sut ca X hp 1, phng sai ln hn: cc gi tr phn tn xa
kz vng hn ...................................................................................................................... 15
Biu 1.6-2 Phn phi xc sut ca X hp 2, phng sai nh hn: cc gi tr tp trung
hn quanh kz vng ............................................................................................................ 15
Biu 1.6-3 Moment trung tm bc 3 ln hn 0: lch dng (ui bn phi di hn) .... 16
Biu 1.9-1 th phn phi xc sut ca X ................................................................... 20
Biu 1.9-2 th ca mt s phn phi chun ............................................................. 21
Biu 4.1-1 Mt s phn phi Gauss, vi phng sai 2 cng ln th cc gi tr x c gi tr
ln (xa kz vng) s c xc sut cao hn ............................................................................. 51
ix
M u
Vn thc t
Ngy nay, mi ngi nghe ni ngy cng nhiu v cc t t li c kh nng thay th con
ngi trong vic vn hnh xe, mt chng trnh my tnh s iu khin xe. Nhng chic xe
ny thm ch cn c gii thiu l an ton hn xe li bi con ngi trong mt s trng
hp.
Trong cc ng dng bo v nh camera an ninh, nhng thit b ny hot ng 24/24. Tuy
nhin, ch mt vi on phim c quay l c { ngha quan trng, chng hn nh on
phim ghi li cnh c ngi t nhp vo hnh lang (ni t camera) vo bui ti. Vy lm
sao chng ta c th tm ra on video ? S rt mt thi gian (v km hiu qu) nu ta
ngi xem ton b 24 gi phim do camera quay. Cc chng trnh s gip chng ta.
Mt ng dng khc, c th chng ta khng thch th lm, l cc tn la khng i
khng (air-to-air missile: AAM). cc l tn la dn hng c bn t mt my bay
tiu dit my bay khc. Tn la dn hng hot ng theo nguyn l pht hin mc tiu
(thng thng bng ra a hoc hng ngoi, i khi cng s dng Lazer hoc quang hc)
sau t ng dn n mc tiu [1].
V cn nhiu ng dng khc na.
Vy lm sao my tnh (cc chng trnh) lm c nhng vic trn? C nhiu th lin
quan cn phi gii quyt, nhng mt phn quan trng trong l vn pht hin ra cc
vt th chuyn ng.
V vic pht hin ra cc i tng di ng c s dng rt rng ri nh th nn c th
ni ti ny rt c { ngha trong khoa hc ln thc tin.
M U
Horn-Schunck: mt thut ton da trn phn tch ton cc, kh chm hn LucasKanade v ngy nay t dng [2].
Mean-Shift: mt k thut phn tch d liu tng qut. c dng trong nhiu lnh
vc khng ch ring trong x l nh [2]. Mt pht trin ca Mean-shift dng cho x
l nh l Cam-shift (continuously adaptive mean-shit).
M U
M U
Sau khi theo di c chuyn ng ca vt th, ta s s dng cc thut ton trong
ha my tnh to ra mt ng dng v (Hnh 0-3 v 0-4) v iu khin nh t camera (di
chuyn v zoom nh) (Hnh 0-5 v 0-6).
M U
ng dng c vit y dng li vi cc chc nng va trnh by. Tuy nhin, vi kin
thc v pht hin vt th v b lc Kalman, ni dung l thuyt c tm hiu hon ton c
th dng pht trin nhiu ng dng thch hp khc.
B cc ca bo co
Bo co ca n ny gm 2 phn chnh: Phn l thuyt v Phn vit ng dng.
Phn l thuyt gm 3 chng:
1 Chng
Nn Tng
Cc ni dung chnh:
CHNG 1. NN TNG
c mt 1 chm
c mt 3 chm
c mt 6 chm
CHNG 1. NN TNG
vi mA l s bin c s cp thun li cho A, tc l, mt cch tng i1, cc bin c m n
xy ra th A xy ra. Cn n l s bin c s cp ng kh nng, tc l tt c cc trng hp
c th xy ta khi thc hin php th.
Cng thc tnh xc sut theo thng k
nh ngha xc sut c in c nhng hn ch (nhng trng hp khng tnh c xc
sut) l:
CHNG 1. NN TNG
Trn y ch l mt v d, nhng ta s thy cng thc tnh xc sut c iu kin cng ging
nh vy.
Mt cch tng qut, ngi ta nh ngha cng thc xc sut c iu kin nh sau:
P(A|B) = P(AB) / P(B), vi P(B) > 0
Ta ni n xc sut c iu kin y v di y ta s cp n khi nim kz vng c
iu kin.
Nh vy n y ta c cc khi nim c bn v php th, bin c v xc sut.
Tuy nhin, cc bin c nh vy vn mi ch c miu t bng li, khng th dng trong
tnh ton nh lng. V bin ngu nhin ra i gii quyt vn ny.
0
1
nu
nu
1.3 Hm xc sut
i vi bin ngu nhin ri rc, hm xc sut, cn gi l hm khi xc sut (ting Anh:
Probability mass function), k hiu l p(x) c nh ngha nh sau:
1 , = 1
2 , = 2
3 , = 3
p(x) =
, =
0 ,
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
CHNG 1. NN TNG
trong , x1, x2, xn l cc gi tr ca bin ngu nhin, v p1, p2, pn l xc sut ti cc bin
c c gi tr tng ng. p(x) = 0 ti cc x khc v l cc bin c khng th xy ra (ging
nh bin c bc c l bi va va en trong b bi).
Hm ny l hm c trng cho mt bin ngu nhin ri rc.
Ni thm: i vi bin ngu nhin lin tc, c mt hm tng ng l hm mt . V
trc gic, hm mt chnh l hm xc sut c lm mn, tc l cc gi tr x gn nh
lin tip nhau (xk+1 xk 0). Hm mt c k hiu l f(x) (khc vi hm tch ly F(x)).
1.4 Hm tch ly
Hm tch ly cn gi l hm phn phi xc sut, c nh ngha nh sau (chung cho c
bin ngu nhin ri rc v lin tc):
F(x) = P[X<x], x R
Lu {: 2 hm xc sut (mt ) v tch ly u c th dng c trng cho mt bin ngu
nhin. Tuy nhin, trong ng dng, ngi ta thng dng hm xc sut (mt ) hn. Khi
ngi ta ni n phn phi xc sut ca mt bin ngu nhin, chnh l ang cp n
hm c trng ca n, v thng thng l hm xc sut.
10
CHNG 1. NN TNG
E(X) = 70 * 1/100 + -1 * 99/100 = -0.29
Nh vy c ngha l trung bnh c t 1 ng, ngi chi s thu v -0.29 ng (mt i
0.29 ng).
Ni thm: mt tr chi c kz vng khc 0 c coi l tr chi khng cng bng. Trong tr
chi s trn, ngi chi l.
1.5.1.1 Cc tnh cht ca k vng
E(c) = c, vi c = hng s
E(c.X) = c.E(X)
E(X + Y) = E(X) + E(Y), vi X, Y l 2 bin ngu nhin
Kz vng khng c tnh nhn, ngha l E(X.Y) khng bng E(X).E(Y). Lng sai khc gia
E(X.Y) v E(X).E(Y) l hip phng sai cov(X,Y) (s ni bn di):
cov(X.Y) = E(X.Y) - E(X).E(Y)
E(X.Y) ch bng E(X).E(Y) khi 2 bin ngu nhin l c lp:
E(X.Y) = E(X).E(Y), vi X v Y l 2 bin ngu nhin c lp
Ta s ni li vn ny trong phn Hip phng sai.
Ngoi ra d thy mt tnh cht na l v mt n v th E(X) c cng n v vi X, v d nu
X c n v l gram th E(X) cng c n v l gram.
1.5.1.2 K vng c iu kin
.P( X=x|Y=y )
11
CHNG 1. NN TNG
1,2
2,2
,2
1,
(1,1 ) (1,2 )
2,
(2,1 ) (2,2 )
)=
,
( ,1 ) ( ,2 )
(1, )
(2, )
( , )
12
CHNG 1. NN TNG
= E(X2) - 2
Ni thm: Theo kin c nhn ca ti, c th ngi ta mun o phn tn quanh gi tr
trung bnh ca cc gi tr ca bin ngu nhin nn mun tnh E(|X-|). Tuy nhin vic dng
gi tr tuyt i dn ti kh khn no trong vic pht trin cc cng thc nn ngi
ta thay tr tuyt i bng bnh phng. D sao y ch l suy din c nhn v ngun gc
phng sai.
V mt n v, phng sai c n v l bnh phng n v ca X. V d X c n v l cm
th var(X) s c n v cm2.
Ngi ta a ra thm khi nim lch chun, k hiu (X), c tnh bng cn bc 2 ca
phng sai:
(X) = var(x)
Vi nh ngha ca phng sai, ta d thy n lun 0, v vy khng cn iu kin g y.
Nh vy, lch chun, do k tha tnh cht ca phng sai, cng c th dng so snh
s phn tn ca cc gi tr quanh gi tr kz vng: cng ln th cc gi tr cng nm xa
(phn tn) gi tr kz vng.
Mt thun li ca lch chun l n c cng n v vi lch chun.
Ni thm: C v nh lch chun l s quay tr v mong mun ban u: tnh ton
khong cch phn tn trung bnh (ch khng phi khong cch bnh phng trung
bnh phng sai). Khong cch phn tn trung bnh m ti ni l E(|X-|). Mc d
lch chun khng bng khong cch phn tn trung bnh ny ( E(|X-|) ) nhng cng
chng c vn g khi dng n gii quyt vn m ngi ta mong mun khong
cch phn tn trung bnh gii quyt: tnh ton s phn tn ca cc gi tr quanh gi tr kz
vng ca mt bin ngu nhin.
13
CHNG 1. NN TNG
Chng ta c th t cu hi cc moment khc kz vng v phng sai c { ngha g khng.
Hu nh mi s tng qut ha u rt c { ngha i vi s pht trin. Cc moment ca
bin ngu nhin cho ta cc thng tin v dng iu ca phn b xc sut (hnh dng ca
th hm xc sut (hay hm mt i vi bin ngu nhin lin tc)) ca bin ngu nhin
.
V d, nu moment trung tm bc 2 (phng sai) ca bin ngu nhin F nh, th c ngha l
cc gi tr ca F ni chung t b sai lch so vi gi tr kz vng ca n, hay ni cch khc phn
ln xc sut ca phn b xc sut ca F tp trung trong mt khong nh xung quanh im
gi tr kz vng. Ngc li, nu moment trung tm bc 2 ln, th phn b xc sut ca F ni
trung s phn tn ra xa im gi tr kz vng hn. y l { ngha ta ni trn.
V d: C 2 hp bi, mi hp ng 12 vin bi. Gi bin l bin ngu nhin nh x khi lng
(n v gram) cc vin bi, ni cch khc X l khi lng cc vin bi. Ta c:
Hp 1:
X (gram)
30
40
50
60
70
S lng
X (gram)
30
40
50
60
70
S lng
Hp 2:
C hai hp u c E(X) = 47.5 (gram) (kz vng: khi lng trung bnh)
Nhng phng sai th khc nhau: (nhc li: var(X) = E(X2) (E(X))2)
14
CHNG 1. NN TNG
0.33
0.25
Xc sut P(X)
0.25
0.08
0.08
K vng
30
40
47.5
50
60
70
X (khi lng)
Biu 1.6-1 Phn phi xc sut ca X hp 1, phng sai ln hn: cc gi tr phn tn xa k vng hn
0.33
Xc sut P(X)
0.25
0.17
0.17
0.08
K vng
30
40
47.5 50
60
70
X (khi lng)
Biu 1.6-2 Phn phi xc sut ca X hp 2, phng sai nh hn: cc gi tr tp trung hn quanh k vng
15
CHNG 1. NN TNG
(+) Phn b lch dng
(ui phi di hn)
-2
p(F)
1/2
1/4
1/4
Xc sut P(F)
0.50
-2
K vng
|
0
0.25
0.25
F
Biu 1.6-3 Moment trung tm bc 3 ln hn 0: lch dng (ui bn phi di hn)
Phn b chun (normal distribution) l phn b xc sut thng dng trong thc t. Ta s ni n phn b
ny trong cc mc sau.
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
16
CHNG 1. NN TNG
Hnh 1.6-1 Cc phn phi xc sut v " nhn". ng gia: phn phi chun.
17
CHNG 1. NN TNG
Nu 2 bin ngu nhin l c lp (s bin thin ca chng khng lin quan nhau) th hip
phng sai ca chng bng 0.
X,Y c lp Cov(X,Y) = 0
Tuy nhin iu ngc li khng ng: nu hip phng sai ca X, Y bng 0 th khng nht
thit 2 bin ny c lp. Cc bin ngu nhin m c hip phng sai bng 0 c gi l
khng tng quan (uncorrelated), chng c th c lp nhau hoc khng.
Chng ta tng cp trong phn kz vng: Kz vng khng c tnh nhn, v lng khc
bit gia kz vng ca tch v tch cc kz vng l hip phng sai:
Cov(X,Y) = E(X Y) - xy
y cng l cng thc m chng ta va trnh by.
Nh vy, nu X, Y c lp, ta c Cov(X,Y) = 0 E(X,Y) = xy
Cng t cng thc nh ngha hip phng sai, ta thy n v ca hip phng sai l tch
n v ca X v Y, v d X c n v l m, Y c n v l kg th cov(X,Y) c n v m.kg.
Cov(X,X) = Var(X)
Cov(X,Y) = Cov(Y,X)
Cov(aX, bY) = abCov(X,Y)
Cov(X1+X2, Y1+Y2) = Cov(X1, Y1) + Cov(X2, Y1) + Cov(X1, Y2) + Cov(X2, Y2)
i, j:i<j Cov(X i ,
Xj )
Ni thm: Ngoi khi nim hip phng sai, ngi ta cn c khi nim h s tng quan,
k hiu X, Y, bng hip phng sai chia cho tch lch chun () ca 2 bin ngu nhin.
X, Y = Cov(X,Y) / XY
H s tng quan c trng cho quan h tuyn tnh ca 2 bin ngu nhin, nu 2 bin
ngu nhin c tr tuyt i h s tng quan cng gn bng 1 th chng cng c quan h
tuyn tnh, v ngc li. Nu 2 bin ngu nhin c h s tng quan = 0 th chng khng c
quan h tuyn tnh. V mt n v, h s tng quan li khng c n v (khc vi phng
sai c n v l bnh phng n v ca X v lch chun c n v l n v ca X).
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
18
CHNG 1. NN TNG
, 1
vi X =
1 , 2
2 , 2
, 2
1 ,
2 ,
Ni d hiu, ma trn hip phng sai l ni cha cc hip phng sai. Mi phn t ca
n l mt hip phng sai ca 2 bin ngu nhin Xi v Xj vi i l ch s hng v j l ch s
ct (i, j = 1..n).
Quan st trn ng cho ca ma trn hip phng sai (i=j) ta thy ti l cc phng
sai, v: Cov(Xi, Xi) = Var(Xi).
Ti liu [4] Lindsay I Smith, A tutorial on Principal Components Analysis, 2002, c ni v ma trn hip
phng sai v ng dng ca n trong phn tch thnh phn chnh (mc 2.1.4 The covariance Matrix). Bn
cng c th tham kho cch ni d hiu v cc khi nim xc sut ng dng trong tin hc trong quyn ny.
5
Vector bin ngu nhin c th hiu n gin l mt mng (tp) cc bin ngu nhin.
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
19
CHNG 1. NN TNG
X (gram)
30
40
50
60
70
S lng
Xc sut P(X)
0.25
0.08
0.08
K vng
|
30
40
47.5 50
60
70
X (khi lng)
Biu 1.9-1 th phn phi xc sut ca X
1
2
(x-)2
22
20
CHNG 1. NN TNG
1.10 c lng
Trong mc ny ta s cp mt s khi nim lin quan n vn c lng (estimation).
Khi nim
c lng l phng on gi tr cha bit da vo cc quan st. C 2 loi:
21
CHNG 1. NN TNG
Gi a l mt gi tr cha bit, khi ngi ta k hiu c lng im ca a l (c th c
l a m), v ta vit a .
Thng k
Trong c lng, ngi ta c khi nim thng k: Thng k l mt i lng m gi tr ca
n ch ph thuc vo cc quan st, khng ph thuc vo cc tham s cha bit.
V d: Cc biu thc dng tnh cc iu sau l cc thng k:
T l hc sinh gii.
im trung bnh ca sinh vin.
K hiu
Trung bnh
Phng sai
Var (hay 2)
S2
lch chun
Mu: c th hiu l b d liu quan st. c mt nh ngha y , xin tham kho cc ti liu v thng
k.
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
22
CHNG 1. NN TNG
T l cc phn t
c tnh cht no
vi X, f, S2, S, ln lt l trung bnh, t l cc phn t c tnh cht quan tm, phng sai v lch
chun ca mu quan st.
Hoc ni cch khc:
23
CHNG 1. NN TNG
Ngoi ra cn c cc khi nim c lng hiu qu tt nht, c lng nht qun vng,
c th tham kho ti liu [5] Cao Ho Thi, c lng cc tham s thng k.
Sai s bnh phng trung bnh (Mean Squared Error - MSE)
Sai s bnh phng trung bnh ca c lng c nh ngha l:
MSE() = E[ ( )2 ]
Ngi ta chng minh c rng:
MSE() = Var() + [ - E() ]2
Hay
MSE() = Var() + [ Bias() ]2
Nu l c lng khng chch th:
MSE() = Var(),
v Bias() = 0
24
CHNG 1. NN TNG
Nu x v y c trung bnh (mean, hay kz vng) bng 0 th ch cn iu kin th nht l c
(v iu kin th 2 t ng tha).
Mt cht ghi ch: yT l ma trn chuyn v ca y.
Vy nguyn tc trc giao thc cht l h phng trnh dng tm cc tham s cho mt
hm c lng ( y l H v c) n t ti u (theo ngha c lng ny c sai s bnh
phng trung bnh nh nht MMSE).
Bn c th xem v d v pht biu cho trng hp tng qut ca nguyn tc trc giao
trong ti liu [6] Orthogonality principle Wikipedia.
Nguyn tc ny cng nh hu ht cc ni dung trnh by trong chng ny s c
dng trong xy dng b lc Kalman (Chng 2).
25
2 Chng
B Lc Kalman
Cc ni dung chnh:
Gii thiu v lc
Gii thiu b lc Kalman
Xy dng b lc Kalman
B lc Kalman trong OpenCV
26
CHNG 2. B LC KALMAN
27
CHNG 2. B LC KALMAN
Tn hiu
cn o
Tn hiu
nhiu
Cm bin
(B o)
Tn hiu
lc
Tn hiu
o
B lc
Sai s ca
cm bin
ng cng l vin s ca Vin Hm lm Khoa hc Quc gia (M), Vin Hn lm K thut Quc
gia (National Academy of Engineering) (M) v Vin Hn lm Khoa hc v Ngh thut
(American Academy of Arts and Sciences) (M).
28
CHNG 2. B LC KALMAN
ng cn l vin s ca cc vin hm lm cc nc khc nh Vin Hn lm Khoa hc
Hungary, Php v Nga. ng cng nhn nhiu bng tin s danh d.[7]
Li t ng ca my bay (Autopilot)
c lng trng thi sc ca pin (Battery state of charge (SoC) estimation)
Giao din tng tc vi my tnh bng no (Braincomputer interface)
Chaotic signals
nh v chuyn ng (Dynamic positioning)
Cc ng dng trong kinh t, c bit l kinh t v m, time series, v econometrics
H thng dn ng qun tnh (Inertial guidance system)
Theo di bng radar (Radar tracker)
H thng nh v v tinh (Satellite navigation systems)
Speech enhancement
D bo thi tit (Weather forecasting)
H thng nh v (Navigation Systems)
M hnh ha 3 chiu (3D-Modelling)
ng dng lc Kalman trong phn tch bin dng nh cao tng do bc x nhit mt
tri.[9]
Ci thin cht lng truyn ng khng ng b bng cu trc tch knh trc tip
s dng kalman filter quan st t thng.[10]
ng dng Kalman Filter cho d bo nhit 2m t sn phm m hnh HRM.[11]
H thng dn ng qun tnh INS/GPS.[12]
2.2.4 V d dn nhp
Chng ta s xem xt mt v d v c lng sau.
Gi s ta c mt vt th chuyn ng thng u (vn tc khng i) theo phng x no
. Ta cn xc nh v tr ca vt sau thi gian t.
Cc thng tin ta bit l:
Vn tc ca vt khng i: v = 70 m/s.
V tr ban u ca vt x(0) = 0
29
CHNG 2. B LC KALMAN
Chng ta cng c mt b phn nh v gn trn vt th cho chng bit v tr x(t) ca vt th
lc t.
Vy l chng ta c 2 cch xc nh v tr vt:
Cch 1: Dng phng trnh ng hc tnh v tr vt
Ta c v tr ca vt ti thi im t l x(t) = x(0) + v.t
Hay vit di dng truy hi l:
1(0) = 0
1(1) = 1(0) + v = v
1(2) = 1(1) + v = 2v
30
CHNG 2. B LC KALMAN
Cch ny nhn c v n. V c th c trng hp 1 chnh xc hn, c trng hp 2 chnh
xc hn, nn s l tt nht nu ty vo trng hp m ta chn (hoc kt hp) kt qu mt
cch thch ng.
Tuy nhin, n y li ny sinh 2 vn mi:
1. v phi chn ra sao c kt qu ti u?
2. V nh ni, v c th s thay i ( ty trng hp m kt hp 2 c
lng cho hp l nht), vy th u s l cn c, tiu chun ta cp nht 2 h s
ny?
n y, b lc Kalman xut hin. 2 vn chng ta va nu chnh l i tng gii quyt
ca b lc Kalman.
Cm bin
(b o)
Gi tr o
31
CHNG 2. B LC KALMAN
2.3 B lc Kalman
2.3.1 Cc k hiu s dng
Mc ny lit k cc k hiu dng trong biu din cc phng trnh qu trnh xy dng cng
nh kt qu ca b lc Kalman. Cc k hiu ny c s dng thng nht trong bo co
ny nhng cc sch v ti liu khc c th c h thng k hiu khc. Bn c th tham
kho vn k hiu ny trong mc 1.3 ON THE NOTATION USED IN THIS BOOK ca ti liu
[14].
K hiu
ngha
Ma trn li Kalman
K hiu
ngha
xk
c lng ca x
xk ()
xk (+)
K hiu
x
Tn
Vector trng thi h thng
32
CHNG 2. B LC KALMAN
w
rx1
Vector iu khin
rx1
Vector gi tr o t
lx1
Vector nhiu o t
lx1
nxn
rxr
lxn
lxl
Tn
Trng thi h thng
Gi tr o
Biu thc
xk = xk-1 + wk-1
zk = H xk + vk
Bng 2.3-4 Biu thc ca trng thi v gi tr o
xk () : gi tr tin nghim ti bc k
xk-1 (+): gi tr hu nghim ca bc k-1 (gi tr ti u ca bc trc)
11
Phn ny l phn din dch li v gii thch chi tit hn ni dung t mc 4.2 KALMAN FILTER
trong ti liu [14] Mohinder S. Grewal and Angus P. Andrews, KALMAN FILTERING - Theory and
Practice Using MATLAB, third edition, John Wiley & Sons, 2008.
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
33
CHNG 2. B LC KALMAN
Mt ch quan trng: Tt c cc nhiu trong b lc Kalman u c gi nh l tun theo
phn phi chun (Gauss) (xem 1.9, chng 1).
Sau , gi tr tin nghim xk () s i qua b lc Kalman kt hp vi gi tr o (zk) to
ra mt c lng ti u.
C th tm tt qu trnh lm vic ca lc Kalman nh sau:
Tnh tin nghim (t hu nghim bc trc) Lc Hu nghim (c lng ti u)
trong :
xk () : gi tr tin nghim
xk (+) : gi tr hu nghim
K1 v K k : cc ma trn cha bit, K k l li ca b lc Kalman
Theo quy tc trc giao, sai s ca c lng bnh phng trung bnh l nh nht
(MMSE) ta phi c:
34
CHNG 2. B LC KALMAN
Nh vy ta c:
t cc sai s:
v thay K1 , zk v k(-) vo ta c:
35
CHNG 2. B LC KALMAN
trong : Rk l ma trn hip phng sai ca sai s nhiu o t (cng thu c do kz vng
ca nhiu o t v bng 0)
=
Nh vy ta thu c li ca b lc Kalman:
12
36
CHNG 2. B LC KALMAN
vo phng trnh quan h ca tin nghim v hu nghim:
ta thu c
+ = + ,
+ = + .
Tr 2 v cho xk v thay zk = H xk + vk vo phng trnh trn ta c :
ta c:
Phng trnh ta va thu c gi l dng Joseph (Joseph form) ca phng trnh cp nht
ma trn hip phng sai.
Tip tc khai trin phng trnh ny ta c:
37
CHNG 2. B LC KALMAN
Thay biu thc ca sai s c lng tin nghim k(-) va thu c vo Pk(-) v s dng:
ta c:
y chnh l biu thc ca ma trn hip phng sai ca sai s ca c lng tin nghim.
Phng trnh
M hnh h thng
xk = xk-1 + wk-1
wk N(0, Qk)
M hnh o
zk = H xk + vk
vk N(0, Rk)
Gi tr khi to
E(x0)=0
E(x0 xT0 )=P0
Gi thit c lp
() = 1 1 (+)
() = 1 1 (+)1
+ 1
(+) = () + [ ()]
(+) = [ ] ()
Ma trn li Kalman
= () () +
38
CHNG 2. B LC KALMAN
Kt hp gi tr o to c lng ti u
Tnh trng thi t m hnh h thng
= () () +
(4) Kt hp gi tr o to c lng ti u:
1 1 (+)1
(+) = () + [ ()]
+ 1
Hm to v hy cu trc CvKalman:
cvCreateKalman(
int
nDynamParams,
int
nMeasureParams,
int
nControlParams
);
cvReleaseKalman(
CvKalman** kalman
);
Cu trc CvKalman cha cc thng tin dng trong b lc Kalman: vector trng
thi, ma trn li (Kalman gain) v cc ma trn lin quan.
//
//
//
//
//
//
//
39
CvMat* state_post;
x_k)
CHNG 2. B LC KALMAN
CvMat* transition_matrix;
CvMat* control_matrix;
control)
CvMat* measurement_matrix;
CvMat* process_noise_cov;
CvMat* measurement_noise_cov;
CvMat* error_cov_pre;
CvMat* gain;
+ R)^-1
CvMat* error_cov_post;
CvMat* temp1;
CvMat* temp2;
CvMat* temp3;
CvMat* temp4;
CvMat* temp5;
} CvKalman;
measurement matrix
H
process noise covariance
Q
measurement noise covariance
R
prior error covariance:
(P_k=F P_k-1 Ft) + Q
Kalman gain matrix:
K_k = P_k H^T (H P_k H^T
cvKalmanPredict(
CvKalman* kalman,
const
CvMat* control = NULL
);
cvKalmanCorrect(
CvKalman* kalman,
CvMat*
measured
);
Sau khi thc hin 2 hm trn, chng ta thc hin xong mt chu kz ca b c lng
dng b lc Kalman.
Tm tt lm vic ca b lc Kalman trong OpenCV:
1. Khi to cc tham s v ma trn cn thit (trong cu trc CvKalman):
40
CHNG 2. B LC KALMAN
l cc tham s bt bin. Ngoi ra ta cn phi khi to trng thi ban u cho h thng:
41
3 Chng
Pht Hin Vt Th
Da Trn Mu Sc
Cc ni dung chnh:
H mu HSV
Cc moment ca nh
Thut ton pht hin vt th da trn
mu sc
Ci t thut ton vi OpenCV
42
3.1 H mu HSV
3.1.1 nh ngha
C nhiu h mu khc nhau dng biu din mu sc trong my tnh. Trong s thng
dng l h mu RGB (trong mt s mn hnh LCD th dng BGR, y ch l s thay i v tr
3 mu c bn).
Trong m thut ngi ta thng dng mu HSV (hay cn c tn HSB) hoc HSL v cc h
mu ny trc quan, d cm nhn. Trong mc ny ta s trnh by v h mu HSV.
H mu HSV c Alvey Ray Smith a ra nm 1978.
Hnh 3.1-2 Hnh trn biu din cc sc mu (H: 0-360) v bo ha (S: 0-1).
Mu : H=0, mu xanh l: H=120, mu xanh dng: H=240
H mu HSV c 3 tham s:
43
Mu c H = 0o
Mu xanh l c H = 120o
Mu xanh dng c H = 240o
H: Sc mu [0-360] vi mu ti im 0
S: bo ha [0-1]
V: Gi tr cng sng [0-1]
44
Gi tr H:
,
H = 60 *
6,
+ 2,
+ 4,
Gi tr S =
0,
= 0
= 0
Gi tr V = M/255
Ch :
Nht thit phi tnh H theo thut ton trn, ch H t cc chng trnh hoc code
khc l khng ng.
H th thng bin thin rt t i vi mt mu, ta ch cn +, - 3 vo H tnh l c
khong ti u.
45
Cn S, V th chng trnh rgbhsv tnh ng, c th dng tra khong bin thin
ca 2 i lng ny cho thun tin.
M = 195 (R)
m = 43
C = M-m = 152
Gi tr H:
(G-B)/C = 0.5395
0.5395 mod 6 = 0.5395
0.5395*60 = 32.37o (gi tr l thuyt)
Gi tr lu trong OpenCV l: H = 32.37 / 2 = 16
Gi tr S:
Gi tr V:
M/255 = 0.7647
Gi tr lu trong OpenCV l: V = 0.7647*255 = 195
1
=0
1
=0 (, )
2 tnh cht trn ca moment s c dng trong phn pht hin i tng theo mu sc.
46
47
Hm cvInRangeS
void cvInRangeS(
const CvArr*
CvScalar
CvScalar
CvArr*
);
src,
lower,
upper,
dst
Hm ny thc hin tnh ton cc moment ca nh, trong image l nh cn tnh moment
v moments l mt bin cu trc cha cc moment ca nh.
typedef struct CvMoments {
// spatial moments
double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03;
// central moments
double mu20, mu11, mu02, mu30, mu21, mu12, mu03;
// m00 != 0 ? 1/sqrt(m00) : 0
double inv_sqrt_m00;
} CvMoments;
Bng vic s dng cc hm trn chng ta c th d dng ci t thut ton pht hin vt
th da trn mu. Code c th cho phn ny s c trnh by trong chng 4.
48
4 Chng
Thit K V Ci t
Chng Trnh Pht Hin Di ng
Cc ni dung chnh:
49
4.1 Thit k
4.1.1 M hnh h thng
Nh trnh by trong chng 2, cc c lng s dng b lc Kalman phi gm 2 phn:
M hnh h thng (tnh ton gi tr c lng cho trng thi h thng) v Cm bin (ly gi
tr o thc t ca trng thi). Trong mc ny chng s trnh by v m hnh ca h thng.
Mc ch ca chng ta l xy dng mt m hnh theo di vt th chuyn ng, nh vy
chng ta c th m hnh h thng nh sau:
4.1.1.1 Vector trng thi
xk =
0
1
0
0
1
0
1
0
0
1
0
1
Nu ly ma trn chuyn trng thi nhn vi vector trng thi ta s c trng thi bc
sau:
1
0
xk+1 = xk =
0
0
0
1
0
0
1
0
1
0
0
1
0
1
+
=
Bi v vector trng thi c kch thc 4x1 nn vector nhiu h thng wk cng phi cng kch
thc 4x1. Do ma trn hip phng sai ca nhiu h thng Q l mt ma trn 4x4:
103
Q= 0
0
0
0
103
0
0
0
0
103
0
0
0
0
103
50
4.1.1.3 Vector o
zk =
Bi v vector trng thi c kch thc 4x1, vector o c kch thc 2x1 nn ma trn o H
(th hin quan h tuyn tnh gia x v z) s c kch thc 2x4: (2x1) = (2x4)(4x1)
16
51
1
0
0 0
1 0
0
0
1 0 0 0
zk = Hxk =
=
0 1 0 0
Ni thm v ma trn o: Ma trn o l ma trn th hin quan h tuyn tnh gia trng thi
v gi tr o. Xem li V d dn nhp mc 2.2.4, chng 2, ta c b phn nh v tr v ta
nn gi tr o c quan h vi trng thi quan tm x - ta ca vt th, l:
z = a.x, a l h s tuyn tnh (m y l ma trn H)
Trong trng hp khc, nu ta khng c b phn nh v tr v ta m c ng h vn
tc tr v vn tc, th khi vector o z l vn tc v d nhin n khng bng x. Gia z v x
khi s c mt h s tuyn tnh a khc. Chng hn trong chuyn ng u th:
z = (1/t) * x, a = (1/t), t l thi gian tnh t lc x = 0.
Nh vy, ta li c thm mt lu { na, h s a (hay y l ma trn H) c th thay i
theo thi gian.Tuy nhin trong trng hp ca chng ta th n phi l khng i.
4.1.1.4 Nhiu o
Bi v vector o c kch thc 2x1 nn vector nhiu o wk cng c kch thc l 2x1, do
ma trn hip phng sai ca nhiu o R s l ma trn c kch thc 2x2.
4
R = 10
0
0
104
4.1.2 B o
B o cho ra gi tr ca vector o z y chnh l hm pht hin vt th da trn mu sc
vit theo thut ton trnh by trong chng 3. u ra ca hm ny l ta tm ca vt
th quan tm.
Ngoi ra cn c 2 gi tr cn khi to l:
52
4.2 Ci t
Chng trnh vit cho n ny s dng th vin OpenCV 2.1 (xem cch ci t v thit
lp trong phn Ph lc) vi ngn ng lp trnh C++, CLR Windows Forms Application
project, IDE Visual Studio 2008.
53
54
55
4.2.2 Cc on m chnh
Phn ny s ghi li code v gii thch km theo ca mt s hm quan trng.
4.2.2.1 Hm StartCamera_MotionTracking
CV_RGB(255,255,0);
CV_RGB(255,0,225);
56
bo
int
int
int
int
cc bin cha v tr ca vt th
posXYellow, XYellow_Kalman;
posYYellow, YYellow_Kalman;
posXPink, XPink_Kalman;
posYPink, YPink_Kalman;
57
58
= XYellow_Kalman;
= YYellow_Kalman;
XPink_Kalman;
YPink_Kalman;
//Cp nht v tr mi
if(coGiaTriMoiYellow)
{
posXYellow = yellowCenter.x;
posYYellow = yellowCenter.y;
//Cp nht gi tr cho vector
vectorDo_z_k
//hng 0, ct 0
cvSetReal2D(vectorDo_z_k,
0,0,posXYellow);
//hng 1, ct 0
cvSetReal2D(vectorDo_z_k,
1,0,posYYellow);
/*Thc hin lc Kalman y*/
LocKalman(kalmanYellow, vectorDo_z_k,
trangThaiPre_UocDoan, trangThaiPost_ToiUu);
//Ly gi tr mi ti u
XYellow_Kalman=
cvGetReal2D(trangThaiPost_ToiUu,0,0);
YYellow_Kalman=
cvGetReal2D(trangThaiPost_ToiUu,1,0);
}
if(coGiaTriMoiPink)
{
posXPink = pinkCenter.x;
posYPink = pinkCenter.y;
//Cp nht gi tr cho vector
vectorDo_z_k
//hng 0, ct 0
cvSetReal2D(vectorDo_z_k,
0,0,posXPink);
//hng 1, ct 0
cvSetReal2D(vectorDo_z_k,
1,0,posYPink);
/*Thc hin lc Kalman y*/
LocKalman(kalmanPink, vectorDo_z_k,
trangThaiPre_UocDoan, trangThaiPost_ToiUu);
//Ly gi tr mi ti u
XPink_Kalman=
cvGetReal2D(trangThaiPost_ToiUu,0,0);
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
59
60
frame);
mu thi)
//thm nh qu o va v vo frame
//cvAdd(frame, imgScribbleYellow,
//nh qu o cha qua lc Kalman (mi detect da trn
//cvAdd(frame, imgScribblePink,
frame);
cvAdd(frame, imgKalmanYellow, frame);
cvAdd(frame, imgKalmanPink, frame);
//cng 2 nh qu o vng v hng
v ra ca s quan st
cvAdd(imgKalmanYellow,imgKalmanPink,imgYellowAndPink);
//V ln khung nhn PictureForm
pictureForm>SetImage(imgYellowAndPink);
pictureForm->VeLenPictureBox();
}
if(dangDieuKhien)
{
//Nu tm thy ng thi 2 vt th, v
c nh t file vo xong th
//ta tin hnh zoom v xoay nh
if(yellowCenter.x > 0 && pinkCenter.x
> 0 && imgForControl_AnhGoc != NULL)
{
imgForControl_BienDoi =
ZoomAnh(imgForControl_AnhGoc, XYellow_Kalman_last, YYellow_Kalman_last,
XYellow_Kalman, YYellow_Kalman,
XPink_Kalman_last,
YPink_Kalman_last, XPink_Kalman, YPink_Kalman );
//V ng ni 2 vt th cho
bit
VeDuongNoi2VatThe(frame,
XYellow_Kalman, YYellow_Kalman, XPink_Kalman, YPink_Kalman);
//V ln khung nhn PictureForm
pictureForm>SetImage(imgForControl_BienDoi);
pictureForm->VeLenPictureBox();
}
//Nu ch thy mt vt th ta tin
hnh di chuyn nh
else if( (yellowCenter.x > 0 ||
pinkCenter.x > 0) && imgForControl_AnhGoc != NULL)
{
if(yellowCenter.x > 0)
{
imgForControl_BienDoi =
DiChuyenAnh(XYellow_Kalman_last, YYellow_Kalman_last, XYellow_Kalman,
YYellow_Kalman);
VeHinhVuongTracking(frame,
XYellow_Kalman, YYellow_Kalman, CV_RGB(0,0,255));
}
else
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
61
4.2.2.2 Hm TaoAnhPhanNguong
62
4.2.2.3 Hm LayToaDoTamVatThe
63
4.2.2.4 Hm KhoiTaoKalman
//int vx = 1;
//vn tc u theo phng x
//int vy = 1; //vn tc u theo phng y
int vx = 2; //vn tc u theo phng x
int vy = 2; //vn tc u theo phng y
//hng 0
cvSetReal2D(kalman->transition_matrix, 0,0,1);
cvSetReal2D(kalman->transition_matrix, 0,1,0);
cvSetReal2D(kalman->transition_matrix, 0,2,vx);
cvSetReal2D(kalman->transition_matrix, 0,3,0);
//hng 1
cvSetReal2D(kalman->transition_matrix,
cvSetReal2D(kalman->transition_matrix,
cvSetReal2D(kalman->transition_matrix,
cvSetReal2D(kalman->transition_matrix,
1,0,0);
1,1,1);
1,2,0);
1,3,vy);
//hng 2
cvSetReal2D(kalman->transition_matrix, 2,0,0);
cvSetReal2D(kalman->transition_matrix, 2,1,0);
cvSetReal2D(kalman->transition_matrix, 2,2,1);
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
64
3,0,0);
3,1,0);
3,2,0);
3,3,1);
////////////
//Khi to cc
//Ma trn o,
//ma trn hip
//ma trn hip
//ma trn hip
ma trn:
phng sai ca nhiu h thng,
phng sai ca nhiu o,
phng sai ca sai s hu nghim
(khi to tnh)
//cvRealScalar(n): to cu trc CvScalar(n,0,0,0):
ch mt s thc
//cvSetIdentity(): to ma trn ch c ng cho
(i=j) l khc 0 (bng gi tr ca cvRealScalar(n) = n), cn li bng 0
cvSetIdentity( kalman->measurement_matrix,
cvRealScalar(1) );
cvSetIdentity( kalman->process_noise_cov,
cvRealScalar(1e-3) );
//1e-3 = 10^-3
//Vic chn gi tr cc phn t trong ma trn hip
phng sai cng ln th c ngha l nhiu cng ln
//Ta chn gi tr ny cng nh nu ta cng tin
tng gi tr ca php o.
cvSetIdentity( kalman->measurement_noise_cov,
cvRealScalar(1e-4) );
//1e-4 = 10^-4
cvSetIdentity( kalman->error_cov_post,
cvRealScalar(1));
//Khi to trng thi hu nghim ban u (ngu
nhin)
cvRand( &rng, kalman->state_post );
/*Khi to xong*/
}
4.2.2.5 Hm LocKalman
65
4.2.2.6 Hm TinhTienAnh
66
=
=
=
=
src->width - 1;
0;
0;
src->height - 1;
if(scale<=0)
scale = 1;
int doDoiX = (xB - xA)*scale;
int doDoiY = (yB - yA)*scale;
//3 im u ra (v tr mi ca 3 im trn)
dstTri[0].x = srcTri[0].x + doDoiX;
//dst Top
left
dstTri[0].y = srcTri[0].y + doDoiY;
dstTri[1].x = srcTri[1].x + doDoiX;
//dst Top
//dst Bottom
right
left offset
dstTri[2].y = srcTri[2].y + doDoiY;
//ly ma trn bin i
cvGetAffineTransform( srcTri, dstTri, warp_mat );
//bin i hnh theo ma trn va tnh
if(thucHienBienDoiTrenAnh)
cvWarpAffine( src, dst, warp_mat );
//Nu thucHienBienDoiTrenAnh == false ngha l hm
dc gi ch tnh ma trn bin i
if(capNhatMaTranBienDoi)
NhanMaTranBienDoi(warp_mat,
MaTran_BienDoiAnhGoc ,MaTran_BienDoiAnhGoc);
cvReleaseMat(&warp_mat);
}
4.2.2.7 Hm ZoomAnh
67
68
69
Kt Lun
n ny hon thnh thu c cc kt qu sau:
V l thuyt
Nm r c b lc Kalman.
C kh nng pht trin h thng c lng dng b lc Kalman.
Nm c thut ton pht hin vt th da trn mu sc, cch kt hp vi b lc
Kalman to ra mt theo di cc i tng chuyn ng.
V ng dng
Mt ng dng dng cc kin thc l thuyt nu trn hon chnh: Chng trnh
pht hin mc tiu di ng v ng dng v, iu khin nh.
Trong chng trnh, ngoi ng dng cc kin thc v lc Kalman v pht hin vt
th da trn mu sc cn ng dng thut ton bin hnh ca ha my tnh
iu khin nh.
70
Ph Lc
Hng dn ci t OpenCV 2.1 cho project Winform CLR, Visual
Studio 2008 C++
1. Ci t OpenCV 2.1 (file OpenCV-2.1.0-win32-vs2008.exe)
Nh chn: Add OpenCV to the system PATH for all users
2. Ci t Cmake (file cmake-2.8.3-win32-x86.exe)
3. Chy Cmake, thc hin cc bc sau:
Where is the source code: th mc OpenCV ci bc 1 (mc nh l
C:/OpenCV2.1)
Where to build the binaries: th mc lu cc file to bi Cmake (ty , y ta
chn: F:/QbuildOpenCV)
Nhn Configure, Specify the generator for this project: chn Visual Studio 9 2008.
Chn Use default native compilers v nhn Finish.
71
PH LC
72
PH LC
73
PH LC
Vi hm OpenFile() nh sau (c t vo cng file code ny)
private: void OpenFile()
{
OpenFileDialog^ dlg = gcnew OpenFileDialog;
dlg->Filter
=
"SelectFile(*.bmp,*.jpg,*.png,*.tif,jp2)|*.bmp;*.jpg;*.png;*.tif;*.jp2";
if
(dlg->ShowDialog()
==
System::Windows::Forms::DialogResult::Cancel) return;
System::String^ strFilename = dlg->FileName;
char*
pStr
=
(char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(strF
ilename).ToPointer();
src_img
=
cvLoadImage(pStr,
CV_LOAD_IMAGE_ANYCOLOR);
CV_LOAD_IMAGE_ANYDEPTH
System::Runtime::InteropServices::Marshal::FreeHGlobal(IntPtr
(pStr));
///////////////////////////////////
Bitmap^ bmpPicBox = gcnew Bitmap(strFilename);
this->pictureBox1->Image = bmpPicBox;
///////////////////////////////////
this->pictureBox1->Refresh();
this->Invalidate();
//delete bmpPicBox;
}
Trn u file code ny, thm m sau ( thm cc th vin cn thit cho chng
trnh) (ch chnh li ng ng dn ti th mc vi OpenCV trn my):
#pragma once
#include "C:\OpenCV2.1\include\opencv\cv.h"
#include "C:\OpenCV2.1\include\opencv\highgui.h"
#ifdef _DEBUG
//Debug
#pragma comment(lib,"C:\\OpenCV2.1\\lib\\cv210d.lib")
#pragma comment(lib,"C:\\OpenCV2.1\\lib\\cxcore210d.lib")
#pragma comment(lib,"C:\\OpenCV2.1\\lib\\cvaux210d.lib")
#pragma comment(lib,"C:\\OpenCV2.1\\lib\\highgui210d.lib")
#else
//Release
#pragma comment(lib,"C:\\OpenCV2.1\\lib\\cv210.lib")
#pragma comment(lib,"C:\\OpenCV2.1\\lib\\cxcore210.lib")
74
PH LC
#pragma comment(lib,"C:\\OpenCV2.1\\lib\\cvaux210.lib")
#pragma comment(lib,"C:\\OpenCV2.1\\lib\\highgui210.lib")
#endif
IplImage* src_img;
Di phn sau:
private:
/// <summary>
/// Required designer variable.
/// </summary>
Ta c:
private:
/// <summary>
/// Required designer variable.
/// </summary>
IplImage* src_img;
if (src_img != NULL){
IplImage *temp_img = src_img;
cvReleaseImage(&temp_img);
src_img = NULL;
}
Ta c hm hy nh sau:
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~QTry1()
{
if (components)
{
delete components;
}
///////////////////////
if (src_img != NULL){
IplImage *temp_img = src_img;
GVHD: ThS. Trn Tin c
SVTH: Trn Nht Quang trannhatquang4810@gmail.com
75
PH LC
cvReleaseImage(&temp_img);
src_img = NULL;
}
}
Enabling
Windows
XP
visual
effects
before
any
controls
are
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew QTry1());
return 0;
}
Hnh PL-5 Kt ca vic ci t v chy thnh cng mt chng trnh Winform dng OpenCV
76
77