You are on page 1of 162

I HC THI NGUYN

KHOA CNG NGH THNG TIN

GIO TRNH MN HC

X L NH
Ngi son : PGS. TS. NNG TON,
TS. PHM VIT BNH

Thi Nguyn, Thng 11 nm 2007


1

LI NI U

Khong hn mi nm tr li y, phn cng my tnh v cc thit b


lin quan c s tin b vt bc v tc tnh ton, dung lng cha,
kh nng x l v.v.. v gi c gim n mc my tnh v cc thit b lin
quan n x l nh khng cn l thit b chuyn dng na. Khi nim
nh s tr nn thng dng vi hu ht mi ngi trong x hi v vic
thu nhn nh s bng cc thit b c nhn hay chuyn dng cng vi vic
a vo my tnh x l tr nn n gin.
Trong hon cnh , x l nh l mt lnh vc ang c quan tm v
tr thnh mn hc chuyn ngnh ca sinh vin ngnh cng ngh thng
tin trong nhiu trng i hc trn c nc. Tuy nhin, ti liu gio trnh
cn l mt iu kh khn. Hin ti ch c mt s t ti liu bng ting Anh
hoc ting Php, ti liu bng ting Vit th rt him. Vi mong mun
ng gp vo s nghip o to v nghin cu trong lnh vc ny, chng
ti bin son cun gio trnh X l nh da trn cng mn hc
c duyt. Cun sch tp trung vo cc vn c bn ca x l nh nhm
cung cp mt nn tng kin thc y v chn lc nhm gip ngi c
c th t tm hiu v xy dng cc chng trnh ng dng lin quan n x
l nh.
Gio trnh c chia lm 5 chng v phn ph lc: Chng 1, trnh
by Tng quan v x l nh, cc khai nim c bn, s tng qut ca
mt h thng x l nh v cc vn c bn trong x l nh. Chng 2,
trnh by cc k thut nng cao cht lng nh da vo cc thao tc vi
im nh, nng cao cht lng nh thng qua vic x l cc im nh
trong ln cn im nh ang xt. Chng ny cng trnh by cc k thut
nng cao cht lng nh nh vo cc php ton hnh thi. Chng 3, trnh
by cc k thut c bn trong vic pht hin bin ca cc i tng nh
theo c hai khuynh hng: Pht hin bin trc tip v pht hin bin gin
tip. Chng 4 th hin cch k thut tm xng theo khuynh hng tnh
ton trc trung v v hng tip cn xp x nh cc thut ton lm mnh
song song v gin tip. V cui cng l Chng 5 vi cc k thut hu x
l.
Gio trnh c bin son da trn kinh nghim ging dy ca tc gi
trong nhiu nm ti cc kha i hc v cao hc ca H Cng ngh HQG H Ni, H Khoa hc t nhin HQG H Ni, Khoa Cng ngh
thng tin H Thi Nguyn v.v.. Cun sch c th lm ti liu tham kho
2

cho sinh vin cc h k s, c nhn v cc bn quan tm n vn nhn


dng v x l nh.
Cc tc gi by t lng bit n chn thnh ti cc bn ng nghip
trong Phng Nhn dng v cng ngh tri thc, Vin Cng ngh thng tin,
B mn H thng thng tin, Khoa Cng ngh thng tin, H Thi Nguyn,
Khoa Cng ngh thng tin, H Cng ngh, HQG H Ni, Khoa Ton
C Tin, H Khoa hc t nhin, HQG H Ni ng vin, gp v
gip hon chnh ni dung cun sch ny. Xin cm n Lnh o Khoa
Cng ngh thng tin, H Thi Nguyn, Ban Gim c H Thi Nguyn
h tr v to iu kin cho ra i gio trnh ny.
Mc d rt c gng nhng ti liu ny chc chn khng trnh khi
nhng sai st. Chng ti xin trn trng tip thu tt c nhng kin ng
gp ca bn c cng nh cc bn ng nghip c chnh l kp thi.
Th gp xin gi v: Phm Vit Bnh,
Khoa Cng ngh thng tin H Thi nguyn.
X Quyt Thng, Tp. Thi Nguyn
in thoi: 0280.846506

Email: pvbinh@ictu.edu.vn

Thi Nguyn, ngy 22 thng 11 nm 2007


CC TC GI

MC LC

LI NI U .................................................................................................................................................................. 2
MC LC ............................................................................................................................................................................. 4
Chng 1: TNG QUAN V X L NH .................................................................................. 9
1.1. X L NH, CC VN C BN TRONG X L NH ................. 9
1.1.1. X l nh l g? ....................................................................................................................................... 9
1.1.2. Cc vn c bn trong x l nh ..................................................................................10
1.1.2.1. Mt s khi nim c bn ................................................................................................10
1.1.2.2. Nn chnh bin dng ...........................................................................................................10
1.1.2.3. Kh nhiu .......................................................................................................................................11
1.1.2.4. Chnh mc xm.........................................................................................................................11
1.1.2.5. Phn tch nh ...............................................................................................................................11
1.1.2.6. Nhn dng.......................................................................................................................................12
1.1.2.7. Nn nh .............................................................................................................................................13
1.2. THU NHN V BIU DIN NH .........................................................................................14
1.2.1. Mu sc..........................................................................................................................................................14
1.2.1.1. M hnh mu RGB (Red, Green, Bule)..........................................................14
1.2.1.2. M hnh mu CMY (Cyan, Magenta, Yellow) ......................................15
1.2.1.3. M hnh mu HSV (Hue, Saturation, Value)...........................................16
1.2.1.4. M hnh mu HLS .................................................................................................................19
1.2.2. Thu nhn, cc thit b thu nhn nh ...............................................................................22
1.2.2.1. Giai on ly mu ..................................................................................................................23
1.2.2.2. Lng t ha ...............................................................................................................................24
1.2.3. Biu din nh ..........................................................................................................................................24
1.2.3.1. M hnh Raster..........................................................................................................................24
1.2.3.2. M hnh Vector.........................................................................................................................25
Chng 2: CC K THUT NNG CAO CHT LNG NH...................26
2.1. CC K THUT KHNG PH THUC KHNG GIAN ..........................26
2.1.1. Gii thiu .....................................................................................................................................................26
4

2.1.2. Tng gim sng ............................................................................................................................26


2.1.3. Tch ngng ............................................................................................................................................27
2.1.4. B cm ...........................................................................................................................................................27
2.1.5. Cn bng histogram .........................................................................................................................28
2.1.6. K thut tm tch ngng t ng ...................................................................................29
2.1.7. Bin i cp xm tng th ........................................................................................................30
2.2. CC K THUT PH THUC KHNG GIAN ....................................................31
2.2.1. Php nhn chp v mu ...............................................................................................................31
2.2.2. Mt s mu thng dng ...............................................................................................................33
2.2.3. Lc trung v...............................................................................................................................................34
2.2.4. Lc trung bnh........................................................................................................................................36
2.2.5. Lc trung bnh theo k gi tr gn nht .........................................................................37
2.3. CC PHP TON HNH THI HC...................................................................................38
2.3.1. Cc php ton hnh thi c bn ...........................................................................................38
2.3.2. Mt s tnh cht ca php ton hnh thi .................................................................39
Chng 3: BIN V CC PHNG PHP PHT HIN BIN .....................44
3.1. GII THIU ........................................................................................................................................................44
3.2. CC PHNG PHP PHT HIN BIN TRC TIP .................................44
3.2.1. K thut pht hin bin Gradient ......................................................................................44
3.2.1.1. K thut Prewitt .......................................................................................................................46
3.2.1.2. K thut Sobel ...........................................................................................................................47
3.2.1.3. K thut la bn ..........................................................................................................................47
3.2.2. K thut pht hin bin Laplace ........................................................................................48
3.2.3. K thut Canny .....................................................................................................................................49
3.3. PHT HIN BIN GIN TIP ....................................................................................................50
3.3.1 Mt s khi nim c bn ..............................................................................................................50
3.3.2. Chu tuyn ca mt i tng nh ....................................................................................51
3.3.3. Thut ton d bin tng qut .................................................................................................53
3.4. PHT HIN BIN DA VO TRUNG BNH CC B .............................56
3.4.1. Bin v bin i v mc xm .......................................................................................56

3.4.2. Pht hin bin da vo trung bnh cc b ...............................................................57


3.5. PHT HIN BIN DA VO CC PHP TON HNH THI ..........60
3.5.1. Xp x trn v xp x di i tng nh ................................................................60
3.5.1. Thut ton pht hin bin da vo php ton hnh thi ...........................61
Chng 4: XNG V CC K THUT TM XNG........................................63
4.1. GII THIU ........................................................................................................................................................63
4.2. TM XNG DA TRN LM MNH .........................................................................63
4.2.1. S lc v thut ton lm mnh .........................................................................................63
4.2.2. Mt s thut ton lm mnh ...................................................................................................65
4.3. TM XNG KHNG DA TRN LM MNH ...............................................65
4.3.1. Khi qut v lc Voronoi ..............................................................................................66
4.3.2. Trc trung v Voronoi ri rc ................................................................................................66
4.3.3. Xng Voronoi ri rc .................................................................................................................67
4.3.4. Thut ton tm xng .....................................................................................................................68
Chng 5: CC K THUT HU X L ................................................................................71
5.1. RT GN S LNG IM BIU DIN ...................................................................71
5.1.1. Gii thiu .....................................................................................................................................................71
5.1.2. Thut ton Douglas Peucker ..................................................................................................71
5.1.2.1. tng ..............................................................................................................................................71
5.1.2.2. Chng trnh ...............................................................................................................................72
5.1.3. Thut ton Band width .................................................................................................................73
5.1.3.1. tng ..............................................................................................................................................73
5.1.3.2. Chng trnh ...............................................................................................................................75
5.1.4. Thut ton Angles ..............................................................................................................................76
5.1.4.1. tng ..............................................................................................................................................76
5.1.4.2. Chng trnh ...............................................................................................................................76
5.2. XP X A GIC BI CC HNH C S ..................................................................77
5.2.1 Xp x a gic theo bt bin ng dng ......................................................................78
5.2.1.1. Xp x a gic bng ng trn .............................................................................80
5.2.1.2. Xp x a gic bng ellipse..........................................................................................80
5.2.1.3. Xp x a gic bi hnh ch nht ..........................................................................80
6

5.2.1.4. Xp x a gic bi a gic u n cnh .............................................................81


5.2.2 Xp x a gic theo bt bin aphin ....................................................................................81
5.3. BIN I HOUGH.....................................................................................................................................82
5.3.1. Bin i Hongh cho ng thng ....................................................................................82
5.3.2. Bin i Hough cho ng thng trong ta cc......................................84
Chng 6: NG DNG X L NH..............................................................................................85
6.1. PHT HIN GC NGHING VN BN DA VO
CHU TUYN .......................................................................................................................................................85
6.1.1. Tnh ton kch thc ch o ca cc i tng nh .................................85
6.1.2. Bin i Hough v pht hin gc nghing vn bn ......................................87
6.1.2.1. p dng bin i Hough trong pht hin gc nghing
vn bn ................................................................................................................................................87
6.1.2.2. Thut ton pht hin v hiu chnh gc nghing vn bn .........88
6.1.2.3. Thc nghim v kt qu ..................................................................................................91
6.2. PHN TCH TRANG TI LIU .................................................................................................93
6.2.1. Quan h Q.................................................................................................................................................93
6.2.2. Phn tch trang vn bn nh khong cch Hausdorff bi quan
h Q .................................................................................................................................................................94
6.2.3. Phn tch trang vn bn da vo mu ..........................................................................96
6.2.3.1. nh gi lch cu trc vn bn theo mu ...........................................96
6.2.3.2. Thut ton phn tch trang vn bn da vo mu ...............................99
6.3. CT CH IN DNH DA VO CHU TUYN .................................................... 101
6.3.1. t vn ............................................................................................................................................... 101
6.3.2. Mt s khi nim c bn ........................................................................................................ 103
6.3.3. Thut ton ct ch in dnh da vo chu tuyn ................................................ 104
6.3.3.1. Phn tch bi ton ............................................................................................................... 104
6.3.3.2. Thut ton CutCHARACTER ct ch in dnh da vo
chu tuyn .................................................................................................................................... 106
6.4. NHN DNG CH VIT .............................................................................................................. 107
6.5. TCH CC I TNG HNH HC TRONG PHIU IU TRA
DNG DU ................................................................................................................................................... 108
6.5.1. Gii thiu ................................................................................................................................................. 108
7

6.5.2. Tch cc i tng nh s dng chu tuyn ....................................................... 109


6.6. TCH BNG DA TRN TP CC HNH CH NHT
RI RC ........................................................................................................................................................... 110
6.6.1. Phn tch bi ton ........................................................................................................................... 111
6.7. PHT HIN I TNG CHUYN NG ......................................................... 113
6.7.1. Pht hin i tng chuyn ng da theo hng tip cn tr
khung hnh lin k ......................................................................................................................... 113
6.7.2. Pht hin i tng chuyn ng theo hng tip cn kt hp 117
6.7.2.1. Tr nh v nh du Iwb ........................................................................................... 117
6.7.2.2. Lc nhiu v pht hin dch chuyn ..................................................... 118
6.7.2.3. Pht hin bin nh a cp xm Igc .................................................................. 118
6.7.2.4. Kt hp nh Igc vi Iwb ............................................................................................. 119
Ph lc 1: MT S NH DNG TRONG X L NH..................................... 121
1. nh dng nh IMG ............................................................................................................................... 121
2. nh dng nh PCX ............................................................................................................................... 122
3. nh dng nh TIFF............................................................................................................................... 123
4. nh dng file nh BITMAP ........................................................................................................ 125
Ph lc 2: CC BC THAO TC VI FILE AVI .................................................... 127
1. Bc 1: M v ng th vin ..................................................................................................... 127
2. Bc 2: M v ng file AVI thao tc: ................................................................... 127
3. Bc 3: M dng d liu thao tc ................................................................................. 128
4. Bc 4: Trng hp thao tc vi d liu hnh ca phim .............................. 128
5. Bc 5: Thao tc vi frame ........................................................................................................... 128
Ph lc 3: MT S MODUL CHNG TRNH............................................................. 129
1. Nhm c, ghi v hin th nh ................................................................................................... 129
1.1. Nhm c nh .................................................................................................................................. 129
1.2. Nhm ghi nh.................................................................................................................................... 137
1.3. Nhm hin th nh ....................................................................................................................... 139
2. Nhm pht hin gc nghing vn bn................................................................................ 144
TI LIU THAM KHO ............................................................................................................................. 157

Chng 1:

TNG QUAN V X L NH

1.1. X L NH, CC VN C BN TRONG X L NH


1.1.1. X l nh l g?
Con ngi thu nhn thng tin qua cc gic quan, trong th gic
ng vai tr quan trng nht. Nhng nm tr li y vi s pht trin ca
phn cng my tnh, x l nh v ho pht trin mt cch mnh m
v c nhiu ng dng trong cuc sng. X l nh v ho ng mt vai
tr quan trng trong tng tc ngi my.
Qu trnh x l nh c xem nh l qu trnh thao tc nh u vo
nhm cho ra kt qu mong mun. Kt qu u ra ca mt qu trnh x l
nh c th l mt nh tt hn hoc mt kt lun.
nh
Tt hn

nh

X L NH
Kt lun
Hnh 1.1. Qu trnh x l nh

nh c th xem l tp hp cc im nh v mi im nh c xem
nh l c trng cng sng hay mt du hiu no ti mt v tr no
ca i tng trong khng gian v n c th xem nh mt hm n bin
P(c1, c2,..., cn). Do , nh trong x l nh c th xem nh nh n chiu.
S tng qut ca mt h thng x l nh:

H quyt nh
Thu nhn nh
(Scanner,
Camera,Sensor)

Tin x l

Trch chn
c im

i snh rt
ra kt lun

Hu
x l
Lu tr

Hnh 1.2. Cc bc c bn trong mt h thng x l nh

1.1.2. Cc vn c bn trong x l nh
1.1.2.1. Mt s khi nim c bn
* nh v im nh:
im nh c xem nh l du hiu hay cng sng ti 1 to
trong khng gian ca i tng v nh c xem nh l 1 tp hp cc
im nh.
* Mc xm, mu
L s cc gi tr c th c ca cc im nh ca nh
1.1.2.2. Nn chnh bin dng
nh thu nhn thng b bin dng do cc thit b quang hc v in
t.
Pi
f(Pi)

Pi

nh thu nhn

nh mong mun

Hnh 1.3. nh thu nhn v nh mong mun

khc phc ngi ta s dng cc php chiu, cc php chiu


thng c xy dng trn tp cc im iu khin.
Gi s (Pi, Pi) i = 1, n c n cc tp iu khin
Tm hm f: Pi f (Pi) sao cho
n

f ( Pi ) Pi '

i =1

min

Gi s nh b bin i ch bao gm: Tnh tin, quay, t l, bin dng


bc nht tuyn tnh. Khi hm f c dng:
f (x, y) = (a1x + b1y + c1, a2x + b2y + c2)
Ta c:

= ( f ( Pi ) Pi ' ) 2 = (a1 xi + b1 yi + c1 xi' ) + (a 2 xi + b2 yi + c2 y i' )


n

i =1

i =1

10

cho min

=0

a
1

=0

b
1

=0

c
1

n
n
n
n
2
'
+
+
=
a
x
b
x
y
c
x
1 i 1 i i 1 i x i x i
i =1
i =1
i =1
i =1
n
n
n
n

2
'
a
x
y
+
b
y
+
c
y
=
1 i i 1 i 1 i y i x i
i =1
i =1
i =1
i =1
n
n
n

'
a1 x i + b1 y i + nc1 = x i
i =1
i =1
i =1

Gii h phng trnh tuyn tnh tm c a1, b1, c1


Tng t tm c a2, b2, c2
Xc nh c hm f
1.1.2.3. Kh nhiu
C 2 loi nhiu c bn trong qu trnh thu nhn nh
Nhiu h thng: l nhiu c quy lut c th kh bng cc php
bin i
Nhiu ngu nhin: vt bn khng r nguyn nhn khc phc
bng cc php lc
1.1.2.4. Chnh mc xm
Nhm khc phc tnh khng ng u ca h thng gy ra. Thng
thng c 2 hng tip cn:
Gim s mc xm: Thc hin bng cch nhm cc mc xm gn
nhau thnh mt b. Trng hp ch c 2 mc xm th chnh l
chuyn v nh en trng. ng dng: In nh mu ra my in
en trng.
Tng s mc xm: Thc hin ni suy ra cc mc xm trung gian
bng k thut ni suy. K thut ny nhm tng cng mn
cho nh
1.1.2.5. Phn tch nh
L khu quan trng trong qu trnh x l nh tin ti hiu nh.
Trong phn tch nh vic trch chn c im l mt bc quan trng. Cc
c im ca i tng c trch chn tu theo mc ch nhn dng trong
qu trnh x l nh. C th nu ra mt s c im ca nh sau y:
c im khng gian: Phn b mc xm, phn b xc sut, bin ,
im un v.v..

11

c im bin i: Cc c im loi ny c trch chn bng vic


thc hin lc vng (zonal filtering). Cc b vng c gi l mt n c
im (feature mask) thng l cc khe hp vi hnh dng khc nhau (ch
nht, tam gic, cung trn v.v..)
c im bin v ng bin: c trng cho ng bin ca i
tng v do vy rt hu ch trong vic trch trn cc thuc tnh bt bin
c dng khi nhn dng i tng. Cc c im ny c th c trch
chn nh ton t gradient, ton t la bn, ton t Laplace, ton t cho
khng (zero crossing) v.v..
Vic trch chn hiu qu cc c im gip cho vic nhn dng cc
i tng nh chnh xc, vi tc tnh ton cao v dung lng nh
lu tr gim xung.
1.1.2.6. Nhn dng
Nhn dng t ng (automatic recognition), m t i tng, phn
loi v phn nhm cc mu l nhng vn quan trng trong th gic my,
c ng dng trong nhiu ngnh khoa hc khc nhau. Tuy nhin, mt cu
hi t ra l: mu (pattern) l g? Watanabe, mt trong nhng ngi i u
trong lnh vc ny nh ngha: Ngc li vi hn lon (chaos), mu l
mt thc th (entity), c xc nh mt cch ang ng (vaguely defined) v
c th gn cho n mt tn gi no . V d mu c th l nh ca vn
tay, nh ca mt vt no c chp, mt ch vit, khun mt ngi
hoc mt k tn hiu ting ni. Khi bit mt mu no , nhn dng
hoc phn loi mu c th:
Hoc phn loi c mu (supervised classification), chng hn phn
tch phn bit (discriminant analyis), trong mu u vo c nh danh
nh mt thnh phn ca mt lp xc nh.
Hoc phn loi khng c mu (unsupervised classification hay
clustering) trong cc mu c gn vo cc lp khc nhau da trn mt
tiu chun ng dng no . Cc lp ny cho n thi im phn loi vn
cha bit hay cha c nh danh.
H thng nhn dng t ng bao gm ba khu tng ng vi ba giai
on ch yu sau y:
1o. Thu nhn d liu v tin x l.
2o. Biu din d liu.
3o. Nhn dng, ra quyt nh.
Bn cch tip cn khc nhau trong l thuyt nhn dng l:
1o. i snh mu da trn cc c trng c trch chn.

12

2o. Phn loi thng k.


3o. i snh cu trc.
4o. Phn loi da trn mng n-ron nhn to.
Trong cc ng dng r rng l khng th ch dng c mt cch tip
cn n l phn loi ti u do vy cn s dng cng mt lc nhiu
phng php v cch tip cn khc nhau. Do vy, cc phng thc phn
loi t hp hay c s dng khi nhn dng v nay c nhng kt qu c
trin vng da trn thit k cc h thng lai (hybrid system) bao gm nhiu
m
hnh
kt hp.
Vic gii quyt bi ton nhn dng trong nhng ng dng mi, ny
sinh trong cuc sng khng ch to ra nhng thch thc v thut gii, m
cn t ra nhng yu cu v tc tnh ton. c im chung ca tt c
nhng ng dng l nhng c im c trng cn thit thng l nhiu,
khng th do chuyn gia xut, m phi c trch chn da trn cc th
tc phn tch d liu.
1.1.2.7. Nn nh
Nhm gim thiu khng gian lu tr. Thng c tin hnh theo c
hai cch khuynh hng l nn c bo ton v khng bo ton thng tin.
Nn khng bo ton th thng c kh nng nn cao hn nhng kh nng
phc hi th km hn. Trn c s hai khuynh hng, c 4 cch tip cn c
bn trong nn nh:
Nn nh thng k: K thut nn ny da vo vic thng k tn
xut xut hin ca gi tr cc im nh, trn c s m c chin
lc m ha thch hp. Mt v d in hnh cho k thut m ha
ny
l *.TIF
Nn nh khng gian: K thut ny da vo v tr khng gian ca
cc im nh tin hnh m ha. K thut li dng s ging
nhau ca cc im nh trong cc vng gn nhau. V d cho k
thut ny l m nn *.PCX
Nn nh s dng php bin i: y l k thut tip cn theo
hng nn khng bo ton v do vy, k thut thng nn hiu
qu hn. *.JPG chnh l tip cn theo k thut nn ny.
Nn nh Fractal: S dng tnh cht Fractal ca cc i tng nh,
th hin s lp li ca cc chi tit. K thut nn s tnh ton ch
cn lu tr phn gc nh v quy lut sinh ra nh theo nguyn l
Fractal
13

1.2. THU NHN V BIU DIN NH


1.2.1. Mu sc
Mt ngi c th phn bit c vi chc mu nhng ch c th cm
nhn c hng ngn mu. Ba thuc tnh ca mt mu l: Sc (Hue),
thun khit (Saturation), v sng hay chi (Itensity).
Trong x l nh v ha, m hnh mu l mt ch s k thut ca
mt h ta mu 3 chiu vi tp cc mu nh thnh phn c th trng
thy c trong h thng ta mu thuc mt gam mu c trng. V d
nh m hnh mu RGB (Red, Green, Blue): l mt n v tp cc mu
thnh phn sp xp theo hnh lp phng ca h trc ta cc.
Mc ch ca m hnh mu l cho php cc ch s k thut quy c
ca mt s loi mu sc thch hp vi cc mu sc ca mt s gam mu
khc. Chng ta c th nhn thy trong m hnh mu ny, khng gian mu l
mt tp hp nh hn ca khng gian cc mu c th nhn thy c, v vy
mt m hnh mu khng th c s dng nh r tt c c th nhn
thy. Sau y, ta xem xt mt s m hnh hay c s dng nht.
1.2.1.1. M hnh mu RGB (Red, Green, Bule)
Mu , lc xanh l cy, lam xanh da tri (RGB) c s dng
ph bin nht. Nhng mu gc RGB c thm vo nhng mu gc khc
iu to nn s ng gp ring ca tng mu gc c thm cng nhau
mang li kt qa. Tp hp mu nh thnh phn sp xp theo khi lp
phng n v. ng cho chnh ca khi lp phng vi s cn bng v
s lng tng mu gc tng ng vi cc mc xm vi en l (0,0,0)
v trng (1,1,1).
Blue(0,255)
(0, 0, 1)

(0,0,0)

(1,0,0)
Red

(0,1,0) green

Hnh 1.4. M hnh mu RGB

14

1.2.1.2. M hnh mu CMY (Cyan, Magenta, Yellow)


L phn b tng ng cho cc mu , lc, lam v cng c s dng
nh nhng b lc loi tr cc mu ny t nh sng trng. V vy CMY cn
c gi l cc phn b loi tr ca mu gc. Tp hp mu thnh phn
biu din trong h ta -cc cho m hnh mu CMY cng ging nh
cho m hnh mu RGB ngoi tr mu trng (nh sng trng), c thay th
mu en (khng c nh sng) ti ngun sng. Cc mu thng c to
thnh bng cch loi b hoc c b t nh sng trng hn l c thm
vo nhng mu ti.
Green

Cyan

Yellow

Red

Black

Blue

Magenta

Hnh 1.5. Cc mu gc b v s pha trn gia chng

Khi b mt c bao ph bi lp mc mu xanh tm, s khng c tia


mu phn chiu t b mt . Mu xanh tm loi b phn mu
phn x khi c tia sng trng, m bn cht l tng ca 3 mu , lc, lam.
V th ta c th coi mu Cyan l mu trng tr i mu v cng l
mu lam cng mu lc. Tng t nh vy ta c mu thm (magenta)
hp th mu lc, v th n tng ng vi mu cng mu lam. V cui
cng mu vng (yellow) hp th mu lam, n s bng mu cng vi lc.
Khi b mt ca thc th c bao ph bi xanh tm v vng, chng s
hp th ht cc phn mu v xanh lam ca b mt. Khi ch tn ti
duy nht mu lc b phn x t s chiu sng ca nh sng trng. Trong
trng hp khi b mt c bao ph bi c 3 mu xanh tm, vng,
thm, hin tng hp th xy ra trn c 3 mu , lc v lam. Do , mu
en s mu ca b mt. Nhng mi lin h ny c th c miu t bi:

C 1 R
M = 1 G

Y 1 B
Hnh 1.6. S bin i t RGB thnh CMY

15

1.2.1.3. M hnh mu HSV (Hue, Saturation, Value)


Cc m hnh mu RGB, CMY c nh hng cho phn cng tri
ngc vi m hnh mu HSV ca Smith hay cn c gi l mu HSB vi
B l Brightness ( sng), c nh hng ngi s dng da trn c s
nn tng v trc gic v tng mu, sc v sc thi m thut.
H thng ta c dng hnh tr v tp mu thnh phn ca khng
gian bn trong m hnh mu c xc nh l hnh nn hoc hnh chp su
cnh nh trong hnh 1.7. nh hnh chp l su cnh khi V= 1 cha ng
mi quan h gia cc mu sng v nhng mu trn mt phng vi V= 1
u c mu sng.

Hnh 1.7. M hnh mu HSV

Sc mu (hue) hoc H c o bi gc quanh trc ng vi mu l


0 , mu lc l 120o, mu lam l 240o (xem hnh 1.7). Cc mu b sung
trong hnh chp HSV 180o i din vi mu khc. Gi tr ca S l mt
tp cc gi tr i t 0 trn ng trc tm (trc V) n 1 trn cc mt bn
ti nh ca hnh chp su cnh. S bo ha c o tng i cho gam
mu tng ng vi m hnh mu ny.
o

M hnh mu dng hnh chp su cnh ny ng cao V vi nh l


im gc ta (0,0). im nh l mu en c gi tr ta mu V= 0,
ti cc im ny gi tr ca H v S l khng lin quan vi nhau. Khi im
c S= 0 v V= 1 l im mu trng, nhng gi tr trung gian ca V i vi
S= 0 (trn ng thng qua tm) l cc mu xm. Khi S= 0 gi tr ca H
ph thuc c gi bi cc quy c khng xc nh, ngc li khi S khc
0 gi tr ca H s l ph thuc.
Nh vy mt mu no V= 1, S= 1 l gig nh mu thun khit
trong m thut c s dng nh im khi u trong cc mu pha trn.
Thm mu trng ph hp gim S (khng c s thay i V) to nn s
thay i sc thi ca gam mu. S chuyn mu c to ra bi vic gi S=
1 v gim V to nn s thay i sc v tng mu to thnh bi vic
thay i c hai S v V.
16

Chuyn i t RGB sang HSV


Hm RGB_HSV_Conversion
H: Sc mu [0-360] vi mu ti im 0
S: bo ha [0-1]
V: Gi tr cng sng [0-1]
Max: Hm ly gi tr cc i
Min: Hm ly gi tr nh nht
{
//Xc nh gi tr cng sng
V= Max(R,G,B)
//Xc nh bo ha
Temp= Min(R,G,B)
If V=0 than
S= 0
Else
S= (V-Temp)/V
End
//Xc nh sc mu
IF s=0 THEN
H= Undefined
Else
Cr= (V-R)/(V-Temp);
Cg= (V-G)/(V-Temp);
Cb= (V-B)/(V-Temp);
// Mu nm trong khong gia vng (Yellow) v ta
(Magenta)
If R=V then
H= Cb-Cg
// Mu nm trong khong gia xanh tm (cyan) v vng (yellow)
If G= V then
H= 2+Cr-Cb

17

// Mu nm trong khong gia ti (magenta) v xanh (cyan)


If B=V then
H= 4+ Cg Cr
H= 60*H // Chuyn sang
//Loi cc gi tr m
If H < 0 then
H= H+360
}
Chuyn i t HSV sang RGB
Hm HSV_RGB_Conversion()
H: Sc mu [0-360] vi mu ti im 0
S: bo ha [0-1]
V: Gi tr cng sng [0-1]
{
//Kim tra trng hp nh sng khng mu
If S=0 then
If H=Undifined then
R= V
G= V
B= V
Endif
Else
If H=360 then
H= 0
Else
H= H/60
endif
I= Floor(H)
F= H-I
M= V*(1-S)
N= V*(1-S*F)
18

K= V*(1-S*(1-F))
//(R,G,B)=(V,K,M) R= V; C= K; B= M
If I=0 then
(R,G,B)=(V,K,M);
If I=1 then
(R,G,B)=(N,V,M);
If I=2 then
(R,G,B)=(M,V,K);
If I=3 then
(R,G,B)=(M,N,V);
If I=4 then
(R,G,B)=(K,M,V);
If I=5 then
(R,G,B)=(V,M,N);
}
1.2.1.4. M hnh mu HLS
M hnh mu HLS c xc nh bi tp hp hnh chp su cnh i
ca khng gian hnh tr. Sc mu l gc quanh trc ng cu hnh chp
su cnh i vi mu ti gc 0o. Cc mu s xc nh theo th t ging
nh trong biu CIE khi ranh gii ca n b xoay ngc chiu kim ng
h: Mu , mu vng, mu lc, mu xanh tm, mu lam v thm. iu
ny cng ging nh th t sc xp trong mu hnh chp su cnh n
HSV.

19

Hnh 1.8. M hnh mu HLS

Chng ta c th xem mu HLS nh mt s bin dng cu mu HSV


m trong mu ny mu trng c ko hng ln hnh chp su cnh
pha trn t mt V= 1. Nh vi mu hnh chp su cnh n, phn b sung
ca mt mu sc c t v tr 180o hn l xunh quanh hnh chp su
cnh i, s bo ha c o xung quanh trc ng, t 0 trn trc ti 1
trn b mt. sng bng khng cho mu en v bng mt cho mu trng.
Chuyn i t RGB sang HLS
Hm RGB_HLS_Conversion()
H: Sc mu [0-360] vi mu ti im 0
S: bo ha [0-1]
V: Gi tr cng sng [0-1]
Max: Hm ly gi tr cc i
Min: Hm ly gi tr nh nht
{
//Xc nh sng
M1= Max(R,G,B)
M2= Min(R,G,B)
L= (M1+M2)
//Xc nh bo ha
If M1=M2 //Trng hp khng mu
S= 0
H= Undefined
Else
If L <= 0.5 then //Trng hp mu
S= (M1-M2)/(M1+M2)
Else
S= (M1-M2)/(2-M1-M2)
Endif
//Xc nh sc
Cr= (M1-R)/(M1-M2)
Cg= (M1-G)/(M1-M2)
20

Cb= (M1-B)/(M1-M2)
if R=M1 then
H= Cb-Cg
If G=M1 then
H= 2+Cr-Cb
If B=M1 then
H= 4+Cg-Cr
H= H*60
if H<0 then
H= H+360
endif
}
Chuyn i t HLS sang RGB
Hm HLS_RGB_Conversion()
H: Sc mu [0-360] vi mu ti im 0
S: bo ha [0-1]
V: Gi tr cng sng [0-1]
{
If L <= 0.5 then
M2= L*(1+S)
Else
M2= L+S-L*S
Endif
M1= 2*L-M2
//Kim tra bo ha = 0
If S=0 then
If H=Undefined
R=L
G=L
B=L
Else //Error: D liu nhp sai
21

Endif
Else //Xc nh gi tr ca RGB
RGB(H+120, M1,M2,Value)
R= Value
RGB(H, M1,M2,Value)
G= Value
RGB(H-120, M1,M2,Value)
B= Value
Endif
}
//Hm iu chnh gi tr ca H cho ph hp khong xc nh
Hm RGB(H, M1, M2, Value)
{
If H < 0 then
H= H+360
If H < 60 then
Value= M1+(M2-M1)*H/60
If H >=60 and H < 180 then
Value= M2
If H>= 180 and H < 240 then
Value = M1+(M2-M1)*(240-H)/60
If H > 240 and H <= 360 then
Value= M1
Return
}

1.2.2. Thu nhn, cc thit b thu nhn nh


Cc thit b thu nhn nh bao gm camera, scanner cc thit b thu
nhn ny c th cho nh en trng
Cc thit b thu nhn nh c 2 loi chnh ng vi 2 loi nh thng
dng Raster, Vector.

22

Cc thit b thu nhn nh thng thng Raster l camera cc thit b


thu nhn nh thng thng Vector l sensor hoc bn s ho Digitalizer
hoc c chuyn i t nh Raster.
Nhn chung cc h thng thu nhn nh thc hin 1 qu trnh
Cm bin: bin i nng lng quang hc thnh nng lng in
(giai on ly mu)
Tng hp nng lng in thnh nh (giai on lng t ha)
1.2.2.1. Giai on ly mu
Ngi ta s dng b cm bin hoc my qut bin tn hiu quang
ca nh thnh tn hiu in lin tc. Phng php s dng my qut ph
bin hn. My qut s qut theo chiu ngang to ra tn hiu in ca
nh, kt qu cho ra mt tn hiu in hai chiu f(x,y) lin tc.
nh
cha
tn
hiu
quang
hc

Dng tn hiu nh

Xt nh lin tc c biu din bi hm f(x, y), gi x l khong cch


gia hai im c gi li theo trc x, gi y l khong cch gia hai im
c gi li theo trc y. y , x c gi l chu k ly mu theo trc x v
y.
Giai on ly mu s bin hm lin tc f(x,y)f(n x , m y ). Vi m,n
l nguyn.
Theo SHANON m bo khng xy ra hin tng chng ph, cho
php ti to li nh gc t nh s ha:
- Gi fx =

1
l tn s ly mu theo trc x.
x

- Gi fy =

1
l tn s ly mu theo trc y.
y

khng xy ra hin tng chng ph th tn s ly mu phi t nht


phi ln hn hoc bng 2 tn s cao nht ca tn hiu nh. Tc l:
fx >= 2fxmax
fy >= 2fymax
Trong fxmax, fymax l tn s cao nht ca tn hiu theo trc x, y.

23

1.2.2.2. Lng t ha
nh sau khi ly mu s c dng f(m,n) vi m, n l nguyn nhng gi
tr f(m, n) vn l gi tr vt l lin tc. Qu trnh bin i gi tr f(m,n)
thnh mt s nguyn thch hp lu tr gi l lng t ho. y l qu
trnh nh x mt bin lin tc u vo bin ri rc u* thuc tp hu hn [u1,
u2,..uL] xc nh trc, L l mc lng t ho c to ra.
V d:
+ To nh a cp xm th L=256, f(m,n) = g [0, 255]
+ To nh 224 th L=224, f(m, n) = g [0, 2 24 1]

1.2.3. Biu din nh


nh trn my tnh l kt qu thu nhn theo cc phng php s ho
c nhng trong cc thit b k thut khc nhau. Qu trnh lu tr nh
nhm 2 mc ch:
Tit kim b nh
Gim thi gian x l
Vic lu tr thng tin trong b nh c nh hng rt ln n vic
hin th, in n v x l nh c xem nh l 1 tp hp cc im vi cng
kch thc nu s dng cng nhiu im nh th bc nh cng p, cng
mn v cng th hin r hn chi tit ca nh ngi ta gi c im ny l

phn gii.
Vic la chn phn gii thch hp tu thuc vo nhu cu s dng
v c trng ca mi nh c th, trn c s cc nh thng c biu
din theo 2 m hnh c bn
1.2.3.1. M hnh Raster
y l cch biu din nh thng dng nht hin nay, nh c biu
din di dng ma trn cc im (im nh). Thng thu nhn qua cc
thit b nh camera, scanner. Tu theo yu cu thc th m mi im nh
c biu din qua 1 hay nhiu bt
M hnh Raster thun li cho hin th v in n. Ngy nay cng ngh
phn cng cung cp nhng thit b thu nhn nh Raster ph hp vi tc
nhanh v cht lng cao cho c u vo v u ra. Mt thun li cho vic
hin th trong mi trng Windows l Microsoft a ra khun dng nh
DIB (Device Independent Bitmap) lm trung gian. Hnh 1.4 th hnh quy
trnh chung hin th nh Raster thng qua DIB.

24

Mt trong nhng hng nghin cu c bn trn m hnh biu din


ny l k thut nn nh cc k thut nn nh li chia ra theo 2 khuynh
hng l nn bo ton v khng bo ton thng tin nn bo ton c kh
nng phc hi hon ton d liu ban u cn nu khng bo ton ch c
kh nng phc hi sai s cho php no . Theo cch tip cn ny
ngi ta ra nhiu quy cch khc nhau nh BMP, TIF, GIF, PCX
Hin nay trn th gii c trn 50 khun dng nh thng dng bao gm
c trong cc k thut nn c kh nng phc hi d liu 100% v nn c
kh nng phc hi vi sai s nhn c.
Paint

BMP
PCC
..
.

DIB

Ca s
Thay i

Hnh 1.9. Qu trnh hin th v chnh sa, lu tr nh thng qua DIB

1.2.3.2. M hnh Vector


Biu din nh ngoi mc ch tit kim khng gian lu tr d dng
cho hin th v in n cn m bo d dng trong la chn sao chp di
chuyn tm kim Theo nhng yu cu ny k thut biu din vector t ra
u vit hn.
Trong m hnh vector ngi ta s dng hng gia cc vector ca
im nh ln cn m ho v ti to hnh nh ban u nh vector c
thu nhn trc tip t cc thit b s ho nh Digital hoc c chuyn i
t nh Raster thng qua cc chng trnh s ho
Cng ngh phn cng cung cp nhng thit b x l vi tc nhanh
v cht lng cho c u vo v ra nhng li ch h tr cho nh Raster.
Do vy, nhng nghin cu v biu din vect u tp trung t chuyn
i t nh Raster.
RASTER

Vecter
ha

VECTOR

Raster
ha

RASTER

Hnh 1.10. S chuyn i gia cc m hnh biu din nh

25

Chng 2:

CC K THUT NNG CAO CHT LNG NH

2.1. CC K THUT KHNG PH THUC KHNG GIAN


2.1.1. Gii thiu
Cc php ton khng ph thuc khng gian l cc php ton khng
phc thuc v tr ca im nh.
V d: Php tng gim sng , php thng k tn sut, bin i
tn sut v.v..
Mt trong nhng khi nim quan trng trong x l nh l biu tn
sut (Histogram)
Biu tn sut ca mc xm g ca nh I l s im nh c gi tr g
ca nh I. K hiu l h(g)
V d:
1
1
2
4
2

I=

2
0
2
1
0

0
0
1
2
1

4
7
0
1
1

h(g)

2.1.2. Tng gim sng


Gi s ta c I ~ kch thc m n v s nguyn c
Khi , k thut tng, gim c sng c th hin
for (i = 0; i < m; i + +)
for (j = 0; j < n; j + +)
I [i, j] = I [i, j] + c;
Nu c > 0: nh sng ln
Nu c < 0: nh ti i

26

2.1.3. Tch ngng


Gi s ta c nh I ~ kch thc m n, hai s Min, Max v ngng
khi : K thut tch ngng c th hin
for (i = 0; i < m; i + +)
for (j = 0; j < n; j + +)
I [i, j] = I [i, j] > = ? Max : Min;
* ng dng:
Nu Min = 0, Max = 1 k thut chuyn nh thnh nh en trng c
ng dng khi qut v nhn dng vn bn c th xy ra sai st nn thnh
nh hoc nh thnh nn dn n nh b t nt hoc dnh.

2.1.4. B cm
K thut nhm gim bt s mc xm ca nh bng cch nhm li s
mc xm gn nhau thnh 1 nhm
Nu ch c 2 nhm th chnh l k thut tch ngng. Thng thng
c nhiu nhm vi kch thc khc nhau.
tng qut khi bin i ngi ta s ly cng 1 kch thc
bunch_size
h(g)

0
I [i,j] = I [i,j]/ bunch - size * bunch_size (i,j)
V d: B cm nh sau vi bunch_size= 3

I=

1
2
7
4

2
1
2
1

4
3
6
2

6
4
9
1

7
5
1
2

27

0
0
6
3

Ikq =

0
0
0
0

3
3
6
0

6
3
9
0

6
3
0
0

2.1.5. Cn bng histogram


nh I c gi l cn bng "l tng" nu vi mi mc xm g, g ta
c h(g) = h(g)
I ~ kch thc m n

Gi s, ta c nh

new_level ~ s mc xm ca nh cn bng
TB =

mn
~ s im nh trung bnh ca mi mc xm
new _ level

ca nh cn bng
g

t ( g ) = h(i )
i =0

~ s im nh c mc xm g

Xc nh hm f: g f(g)

t(g)
1
TB

Sao cho: f ( g ) = max 0, round

V d: Cn bng nh sau vi new_level= 4


1
2
4
6
7
2
1
3
4
5
I= 7
2
6
9
1
4
1
2
1
2
g

h(g) t(g) f(g)

10

11

14

15

17

19

20

28

0
1
Ikq = 3
2

1
0
1
0

2
1
2
1

2
2
3
0

3
2
0
1

Ch : nh sau khi thc hin cn bng cha chc l cn bng "l tng
"

2.1.6. K thut tm tch ngng t ng


Ngng trong k thut tch ngng thng c cho bi ngi s
dng. K thut tm tch ngng t ng nhm tm ra ngng mt cch t
ng da vo histogram theo nguyn l trong vt l l vt th tch lm 2
phn nu tng lnh trong tng phn l ti thiu.
Gi s, ta c nh

I ~ kch thc m n
G ~ l s mc xm ca nh k c khuyt thiu
t(g) ~ s im nh c mc xm g

1 g
m( g ) =
i.h(i)
t ( g ) i =0
~ mmen qun tnh TB c mc xm g

Hm f: g f (g )
f (g) =

t(g)
[m( g ) m(G 1)]2
mxn t ( g )

Tm sao cho:
f ( ) = max { f ( g )}
0 g < G 1

V d: Tm ngng t ng ca nh sau
0
1
2
3
4
5
0
0
1
2
3
4
I= 0
0
0
1
2
3
0
0
0
0
1
2
0
0
0
0
0
1
Lp bng
g

g h(g) t(g) g.h(g)

ih(i)

m(g)

f(g)

i =0

15

15

1.35

20

0,25

1.66
29

24

13

0,54

1.54

27

22

0,81

1.10

29

30

1,03

0.49

30

35

1,16

Ngng cn tch = 1 ng vi f()= 1.66

2.1.7. Bin i cp xm tng th


Nu bit nh v hm bin i th ta c th tnh c nh kt qu v do
ta s c c histogram ca nh bin i. Nhng thc t nhiu khi ta
ch bit histogram ca nh gc v hm bin i, cu hi t ra l liu ta c
th c c histogram ca nh bin i. Nu c nh vy ta c th hiu
chnh hm bin i thu c nh kt qu c phn b histogram nh
mong mun.
Bi ton t ra l bit histogram ca nh, bit hm bin i hy v
histogram ca nh mi.
V d:
g

h(g)

g + 1 nu g 2
f(g)=

nu g = 3

g 1 nu g > 3
Bc 1: V Histogram ca nh c
f(g)

30

Bc 2: V th hm f(g)
h(g)

0
Bc 3: V Histogram ca nh mi
t q = f(g)
h(q) = card ({P| I(P) = q})
= card ({P| I(P) = f(g)})
= card ({P| g = f-1 (I(P))})
=

h(i)

i f 1 ( q )

h(g) f(g)

0
Histogram ca nh mi thua c bng cch chng hnh v tnh gi
tr theo cc q (= f(g)) theo cng thc tnh trn. Kt qu cui thu c sau
php quay gc 90 thun chiu kim ng h.

2.2. CC K THUT PH THUC KHNG GIAN


2.2.1. Php nhn chp v mu
Gi s ta c nh I kch thc M N, mu T c kch thc m n khi
, nh I nhn chp theo mu T c xc nh bi cng thc.

31

m 1

I T ( x, y ) =
i =0

m 1

Hoc

I T ( x, y ) =
i =0

n 1

I (x + i, y + j ) * T (i, j )

(2.1)

j =0

n 1

I (x i, y j )* T (i, j )

(2.2)

j =0

VD:

I=

1
2
4
1
7

2
1
5
2
2

T=

1
1

I T ( x, y ) =
i =0

4
1
5
1
2

5
4
8
1
1

8
2
8
4
5

7
2
2
4
2

I (x + i, y + j )*T (i, j ) = I (x, y )*T (0,0) + I (x + 1, y + 1)*T (1,1)


j =0

= I (x, y ) + I (x + 1, y + 1)

2
7

3
6

8
9

7
12

10
4

*
*

IT= 6
3
*

6
4
*

6
2
*

12
6
*

12
6
*

*
*
*

Tnh theo cng thc 2.2


*
*
*
*
*
2
3
8

*
7

*
10

IT= *
*
*

12
12
6

4
12
6

7
6
3

6
6
4

9
6
2

Tnh theo (2.1)

* Nhn xt:
- Trong qu trnh thc hin php nhn chp c mt s thao tc ra
ngoi nh, nh khng c xc nh ti nhng v tr dn n nh thu
c c kch thc nh hn.
- nh thc hin theo cng thc 2.1 v 2.2 ch sai khc nhau 1 php
dch chuyn n gin ta s hiu php nhn chp l theo cng thc 2.1

2.2.2. Mt s mu thng dng


32

- Mu:
T1 =

1
1
1

1
1
1

1
1
1

~ Dng kh nhiu Cc im c tn s cao


VD1:
1
2
4
1
7

2
31
5
2
2

4
1
5
1
2

5
4
8
1
1

8
2
8
4
5

7
2
2
4
2

55
52

65
58

45
34

46
35

*
*

*
*

I T1 = 29
*
*

27
*
*

35
*
*

35
*
*

*
*
*

*
*
*

I=

p dng k thut cng hng s vi c = -27, ta c:


28 38 18 19 *
*
25 31 7
8
*
*
Ikq =
2
0
8
8
*
*
*
*
*
*
*
*
*
*
*
*
*
*
- Mu:
0
T2 = -1
0

-1
4
-1

0
-1
0

~ Dng pht hin cc im c tn s cao


VD2:
114 -40 0 -14
-22 5 14 16
I T2 =-1 -6 -10 -2
*
*
*
*
*
*

*
*
*

*
*

*
*

*
*
*

*
*
33

2.2.3. Lc trung v
* nh ngha 2.1 (Trung v)
Cho dy x1; x2...; xn n iu tng (gim). Khi trung v ca dy k
hiu l Med({xn}), c nh ngha:
n

+ Nu n l x + 1
2

n
x
x
+ Nu n chn: hoc + 1
2

2
* Mnh 2.1
n

xx
i =1

min ti Med ({xn })

Chng minh
+ Xt trng hp n chn
t M =

n
2

Ta c:
n

i =1

i =1

i =1

x xi = x x i + x x M + i

= ( x xi + x M +i x ) x M + i xi
M

i =1

i =1

= [( x M +1 x M ) + ( x M xi )]
i =1

i =1

i =1

= x M +i Med ({xi }) + xi Med ({xi })


n

= xi Med ({xi })
i =1

+ Nu n l:
B sung thm phn t Med ({xi }) vo dy. Theo trng hp n chn
ta c:
n

xx
i =1

+ Med ({xi }) Med ({xi }) min ti Med({xn})

34

xx
i =1

min ti Med({xn})

* K thut lc trung v
Gi s ta c nh I ngng ca s W(P) v im nh P
Khi k thut lc trung v ph thuc khng gian bao gm cc bc
c bn sau:
+ Bc 1: Tm trung v
{I(q)| q W(P)} Med (P)
+ Bc 2: Gn gi tr
I ( P)
I ( P) =
Med ( P )

I ( P) Med ( P)
Nguoclai

V d:

I=

1
4
4
2

2
16
2
1

3
2
1
2

2
1
1
1

W(3 3); = 2
1
2
3
2
4
2
2
1
2
1
1
Ikq = 4
2
1
2
1
Gi tr 16, sau php lc c gi tr 2, cc gi tr cn li khng thay i
gi tr.

35

2.2.4. Lc trung bnh


* nh ngha 2.2 (Trung bnh)
Cho dy x1, x2, xn khi trung bnh ca dy k hiu AV({xn})
ddc nh ngha:
1 n
AV ({xn }) = round xi
n i =1

* Mnh 2.2
2

(x x )
i

i =1

min ti AV ({xn })

Chng minh:
t: ( x ) =

(x x )

i =1

Ta c:
n

( x ) = 2 ( x x i )
i =1

' ( x) = 0
n

(x xi ) = 0
i =1

1 n
x = xi = AV ({xi })
n i =1
''
Mt khc, ( x) = 2n > 0

min ti x = AV ({xi })
K thut lc trung bnh
Gi s ta c nh I, im nh P, ca s W(P) v ngng . Khi k
thut lc trung bnh ph thuc khng gian bao gm cc bc c bn sau:
+ Bc 1: Tm trung bnh
{I(q)| q W(P)} AV(P)

36

+ Bc 2: Gn gi tr
I ( P) AV ( P)

I ( P)
I ( P) =
AV ( P)

Nguoclai

V d:
1
4
4
2

I=

2
16
2
1

3
2
1
2

W(3 3); = 2
1
2
3
4
3
2
2
1
Ikq = 4
2
1
2
Gi tr 16 sau php lc
nguyn sau php lc.

2
1
1
1
2
1
1
1
trung bnh c gi tr 3, cc gi tr cn li gi

2.2.5. Lc trung bnh theo k gi tr gn nht


Gi s ta c nh I, im nh P, ca s W(P), ngng v s k. Khi
, lc trung bnh theo k gi tr gn nht bao gm cc bc sau:
+ Bc 1: Tm K gi tr gn nht
{I(q) q W(p)} {k gi tr gn I(P) nht}
+ Bc 2: Tnh trung bnh
{k gi tr gn I(P) nht} AVk(P)
+ Bc 3: Gn gi tr
I ( P) AV k ( P)

I ( P)
I ( P) =
AVk ( P)

Nguoclai

V d:

I=

1
4
4
2

2
16
2
1

3
2
1
2

2
1
1
1

W(3 3); = 2; k = 3

37

1
4
4
2

Ikq =

2
8
2
1

3
2
1
2

2
1
1
1

* Nhn xt:
- Nu k ln hn kch thc ca s th k thut chnh l k thut lc
trung bnh
- Nu k= 1 th nh kt qu khng thay i
Cht lng ca k thut ph thuc vo s phn t la chn k.

2.3. CC PHP TON HNH THI HC


2.3.1. Cc php ton hnh thi c bn
Hnh thi l thut ng ch s nghin cu v cu trc hay hnh hc
topo ca i tng trong nh. Phn ln cc php ton ca "Hnh thi" c
nh ngha t hai php ton c bn l php "gin n" (Dilation) v php
"co" (Erosion).
Cc php ton ny c nh ngha nh sau: Gi thit ta c i tng
X v phn t cu trc (mu) B trong khng gian Euclide hai chiu. K hiu
Bx l dch chuyn ca B ti v tr x.
nh ngha 2.3 (DILATION)
Php "gin n" ca X theo mu B l hp ca tt c cc Bx vi x thuc
X. Ta c:
X B = Bx
xX

nh ngha 2.4 (EROSION)


Php "co" ca X theo B l tp hp tt c cc im x sao cho Bx nm
trong X. Ta c:
X  B = {x : Bx X}

V d: Ta c tp X nh sau:

x
X = 0
0
0

x
0
x

0
x
x

x
x
0

x
x

0
x

x
x

0
0 B =

0
0

38

x
0
XB=
0
0

x
x

x
x

x
x

x
x

x
x

x
x

x
0
v XB =
x
x

0
0

0
0

0
x

x
0

0
0

0
x

0
x

0
0

0
0

0
0

nh ngha 2.5 (OPEN)


Php ton m (OPEN) ca X theo cu trc B l tp hp cc im ca
nh X sau khi co v gin n lin lip theo B. Ta c:
OPEN(X,B) = (X  B) B
V d: Vi tp X v B trong v d trn ta c
0

OPEN(X,B) = (XB) B = 0

0
x

x
x

x
0

nh ngha 2.6 (CLOSE)


Php ton ng (CLOSE) ca X theo cu trc B l tp hp cc im
ca nh X sau khi gin n v co lin tip theo B. Ta c:
CLOSE(X,B) = (X B)  B
Theo v d trn ta c:
0

CLOSE(X,B) = (X B)  B = 0

x
x

x
x

x
0

2.3.2. Mt s tnh cht ca php ton hnh thi


* Mnh 2.3 [Tnh gia tng]:
(i) X X

X  B X  B B
X B X B

(ii) B B'

X  B X  B' X
X B X B

X
39

Chng minh:
(i) X B =

xX

= X ' B

xX '

X  B = {x / Bx X } {x / Bx X '} = X  B
(ii) X B =

xX

B' x = X B'
xX

Theo nh ngha:
X  B = {x / B' x X } {x / Bx X } = X  B .
*Mnh 2.4 [Tnh phn phi vi php ]:
(i) X (B B') = (X B) (X B')
(ii) X (B B') = (X  B) (X B')
Chng minh:
(i) X (B B) = ( X B) (X B)
Ta c: B B B
X (B B) X B

(tnh gia tng)

Tng t:
X ( B B) X B
X (B B) (X B) (X B)

(2.3)

Mt khc,
y X (B B) x X sao cho y (B B)x
y Bx

y Bx

yXB
y X B

y (X B) (X B)
X (B B) (X B ) (X B)

(2.4)

T (2.3) v (2.4) ta c: X (B B) = (X B) (X B)
(ii) X  (B B) = (X  B) (X  B)
Ta c: B B B

X  (B B) X  B

(tnh gia tng)

Tng t : X  (B B) X  B

X  (B B) (X  B) ( X  B)

(2.5)
40

Mt khc,
x (X  B) (X  B)
Suy ra, x X  B

Bx X

x X  B

Bx X

( B B)x X
x X  (B B)
X  (B B) (X  B) (X  B)

(2.6)

T (2.5) v (2.6) ta c: X  (B B) = (X  B) (X  B).


* ngha:
Ta c th phn tch cc mu phc tp tr thnh cc mu n gin
thun tin cho vic ci t.
* Mnh 2.5 [Tnh phn phi vi php ]:
(X Y)  B = (X  B) (Y  B)
Chng minh:
Ta c,

X YX

(X Y)  B X  B

Tng t:

(X Y)  B Y  B

(X Y)  B (X  B) (Y  B)

(2.7)

Mt khc,
x (X  B) (Y  B)
Suy ra x X  B
xYB

Bx X
Bx Y

Bx X Y
x ( X Y)  B
(X Y)  B (X  B) (Y  B)

(2.8)

T (2.7) v (2.8) ta c: (X Y)  B = (X  B) (Y  B).


* Mnh 2.6 [Tnh kt hp]
(i) (X B) B' = X (B B')
(ii) (X  B)  B' = X  (B B')

41

Chng minh:
(i) (X B) B' = X (B' B)
Ta c, (X B) B' = ( B x ) B'
xX

(B

B' ) =

xX

(B B )
'

xX

= X (B' B)
(i) (X  B)  B' = X  (B B')
Trc ht ta i chng minh: B x' X  B ( B ' B) x X
Tht vy, do B x' X  B nn y B x' yX  B
By X

yBx'

( B ' B) x X
Mt khc, ( B ' B ) x X ( B x' B) X

yBx'

y B x' ta c By X
hay y B x' ta c y X  B
Do , B x' X  B
Ta c, (X  B)  B' = {x / B x X }  B'
= {x/ B x' X  B}
= {x/ ( B ' B) x X} (do chng minh trn)
= X  (B B') .

* nh l 2.1 [X b chn bi cc cn OPEN v CLOSE]


Gi s, X l mt i tng nh, B l mu, khi , X s b chn trn
bi tp CLOSE ca X theo B v b chn di bi tp OPEN ca X theo B.
Tc l:
(X B)  B X (X  B) B

42

Chng minh:
Ta c: x X Bx X B

(V X B =

xX

x (X B)  B

(theo nh ngha php co)

(X B)  B X

(2.9)

Mt khc,
y (X  B) B, suy ra:
x X  B sao cho y Bx

(V (X
B) B =

xXB

Bx X y X
Suy ra: X (X  B) B

(2.10)

T (2.9) v (2.10) Ta c: (X B)  B X (X  B) B .
*H qu 2.1 [Tnh bt bin] :
(i) ((X B) B) B = X B
(ii) ((X  B) B)  B = XB
Chng minh:
(i) Tht vy, t nh l 2.1 ta c X (X B) B
X B ((X B) B) B (do tnh cht gia tng) (2.11)
Mt khc, cng t nh l 2.1 ta c (X  B) B X X
Do , thay X bi X B ta c, ((X B) B) B X B (2.12)
T (2.11) v (2.12) Ta c: ((X B) B) B = X B
(ii) Tht vy, t nh l 2.1 ta c (X  B) B X
((X  B) B)  B XB (do tnh cht gia tng) (2.13)
Mt khc, cng t nh l 2.1 ta c X (X B) B X
Do , thay X bi X  B ta c, XB ((X  B) B)  B (2.14)
T (2.13) v (2.14) Ta c: ((X  B) B)  B = XB (pcm).

43

Chng 3:

BIN V CC PHNG PHP PHT HIN BIN

3.1. GII THIU


Bin l vn quan trng trong trch chn c im nhm tin ti
hiu nh. Cho n nay cha c nh ngha chnh xc v bin, trong mi
ng dng ngi ta a ra cc o khc nhau v bin, mt trong cc o
l o v s thay i t ngt v cp xm. V d: i vi nh en
trng, mt im c gi l im bin nu n l im en c t nht mt
im trng bn cnh. Tp hp cc im bin to nn bin hay ng bao
ca i tng. Xut pht t c s ny ngi ta thng s dng hai phng
php pht hin bin c bn:
Pht hin bin trc tip: Phng php ny lm ni bin da vo s
bin thin mc xm ca nh. K thut ch yu dng pht hin bin
y l k thut ly o hm. Nu ly o hm bc nht ca nh ta c cc k
thut Gradient, nu ly o hm bc hai ca nh ta c k thut Laplace.
Ngoi ra cn c mt s cc tip cn khc
Pht hin bin gin tip: Nu bng cch no ta phn c nh
thnh cc vng th ranh gii gia cc vng gi l bin. K thut d bin
v phn vng nh l hai bi ton i ngu nhau v d bin thc hin phn
lp i tng m khi phn lp xong ngha l phn vng c nh v
ngc li, khi phn vng nh c phn lp thnh cc i tng, do
c th pht hin c bin.
Phng php pht hin bin trc tip t ra kh hiu qu v t chu nh
hng ca nhiu, song nu s bin thin sng khng t ngt, phng
php t ra km hiu qu, phng php pht hin bin gin tip tuy kh ci
t, song li p dng kh tt trong trng hp ny. S khc bit c bn
gia hai phng php ny l: Phng php pht hin bin trc tip cho ta
kt qu l nh bin, cn phng php pht hin bin trc tip cho ta kt
qu l ng bin.

3.2. CC PHNG PHP PHT HIN BIN TRC TIP


3.2.1. K thut pht hin bin Gradient
Theo nh ngha, gradient l mt vct c cc thnh phn biu th tc
thay i gi tr ca im nh, ta c:

44

f ( x, y )
f ( x + dx, y ) f ( x, y )
= fx
x
dx
f ( x, y )
f ( x, y + dy ) f ( x, y )
= fy
y
dy

Trong , dx, dy l khong cch (tnh bng s im) theo hng x v


y.
* Nhn xt:
Tuy ta ni l ly o hm nhng thc cht ch l m phng v xp x
o hm bng cc k thut nhn chp v nh s l tn hiu ri rc nn o
hm khng tn ti.
V d: Vi dx = dy = 1, ta c:
f
x f ( x + 1, y ) f ( x, y )

f f ( x, y + 1) f ( x, y )
y

Do , mt n nhn chp theo hng x l A= ( 1 1)


1

v hng y l B=
1
Chng hn:
0
0
I=
0
0

0
3
3
3

0
3
3
3

0
3
3
3

3
3
*

0
0
*

0
0
*

* ; I B= 0
*
0
*
*

0
0
*

0
0
*

*
*
*

Ta c,
IA=

45

I A + I B= 3

3
*

0
*

0
*

*
*

3.2.1.1. K thut Prewitt


K thut s dng 2 mt n nhp chp xp x o hm theo 2 hng x
v y l:
-1 0
1
Hx =
-1 0
1
-1 0
1
-1 -1 -1
0
0
0
Hy =
1
1
1
Cc bc tnh ton ca k thut Prewitt
+ Bc 1: Tnh I Hx v I Hy
+ Bc 2: Tnh I Hx + I Hy
V d:

I=

I Hx =

0
5
5
5
0
0

0
5
5
5
0
0

0
0

0
0

0
0
*
*

0
0
*
*

0
5
5
5
0
0

0
5
5
5
0
0

0
0
0
0
0
0

0
0
0
0
0
0

-10 -10
-15 -15

*
*

*
*

-10 -10
-5 -5
*
*
*
*

*
*
*
*

*
*
*
*

46

15 15 10 5
0
0
0
0
-15 -15 -10 -5

*
*
*

*
*
*

I Hy = -15 -15 -10 -5 *


*
*
*
*
*
*
*
*
*
*
*
*
*
15 15 0 -5
0
0 -15 -15
I Hx + I Hy =

-15 -15 -20 -15


-15 -15 -15 -10
*
*
*
*
*
*
*
*

*
*

*
*

*
*
*
*

*
*
*
*

3.2.1.2. K thut Sobel


Tng t nh k thut Prewitt k thut Sobel s dng 2 mt n nhn
chp theo 2 hng x, y l:
-1 0
1
Hx =
-2 0
2
-1 0
1
-1 -2 -1
Hy =
0
0
0
1
2
1
Cc bc tnh ton tng t Prewitt
+ Bc 1: Tnh I Hx v I Hy
+ Bc 2: Tnh I Hx + I Hy
3.2.1.3. K thut la bn
K thut s dng 8 mt n nhn chp theo 8 hng 00, 450, 900, 1350,
1800, 2250, 2700, 3150
5
5 -3
5
5
5
H1 = 5
0 -3
H2 = -3 0 -3
-3 -3 -3
-3 -3 -3
-3
H3 = -3
-3

5
0
-3

5
5
-3

H4 =

-3
-3
-3

-3
0
-3

5
5
5

47

-3
H5 = -3
-3

-3
0
5

-3
5
5

-3
H7 = 5
5

-3
0
5

-3
-3
-3

H6 =

-3
-3
5

-3
0
5

-3
-3
5

H8 =

5
5
5

-3
0
-3

-3
-3
-3

Cc bc tnh ton thut ton La bn


+ Bc 1: Tnh I Hi ; i = 1,8
8

+ Bc 2:

I H
i =1

3.2.2. K thut pht hin bin Laplace


Cc phng php nh gi gradient trn lm vic kh tt khi m
sng thay i r nt. Khi mc xm thay i chm, min chuyn tip tri
rng, phng php cho hiu qu hn l phng php s dng o hm
bc hai Laplace.
Ton t Laplace c nh ngha nh sau:
Ta c:

2 f 2 f
f = 2 + 2
x
y
2

2 f
f
= ( f ( x + 1, y ) f ( x, y ) )
2
x
x x x
[ f ( x + 1, y ) f ( x, y )] [ f ( x, y ) f ( x 1, y )]
f ( x + 1, y ) 2 f ( x, y ) + f ( x 1, y )
Tng t,

2 f
f
= ( f ( x, y + 1) f ( x, y ) )
2
y
y y y
[ f ( x, y + 1) f ( x, y )] [ f ( x, y ) f ( x, y 1)]
f ( x, y + 1) 2 f ( x, y ) + f ( x, y 1)
Vy: 2 f= f(x+1,y) + f(x,y+1) - 4f(x,y) + f(x-1,y) + f(x,y-1)

48

Dn ti:

0 1 0

H = 1 4 1
0 1 0

Trong thc t, ngi ta thng dng nhiu kiu mt n khc nhau


xp x ri rc o hm bc hai Laplace. Di y l ba kiu mt n
thng dng:

0 1 0
1 1 1
1 2 1

H1 = 1 4 1 H 2 = 1 8 1 H 3 = 2 4 2
0 1 0
1 1 1
1 2 1

VD:
I=

3.2.3. K thut Canny


y l mt thut ton tng i tt, c kh nng a ra ng bin
mnh, v pht hin chnh xc im bin vi im nhiu.
Thut ton
+ Bc 1: Lm trn nh
Tnh I H, vi:
2
4
1
5
H=
115
4
2

4 5 4 2
9 12 9 4
12 15 12 5

9 12 9 4
4 5 4 2

Gi G l kt qu lc nhiu: G= I H

49

+Bc 2: Tnh gradient ca nh bng mt n PreWitt, kt qu t vo


Gx,Gy.
Gx = G Hx, Gy = G Hy
+ Bc3: Tnh gradient hng ti mi im (i,j) ca nh. Hng ny
s c nguyn ha nm trong 8 hng [0..7], tng ng vi 8 ln
cn ca mt im nh.
+ Bc 4: Dng rng buc loi b nhng im khng phi l cc
i xa b nhng im khng l bin. Xt (i,j), l gradient hng ti
(i,j). I1, I2 l hai im ln cn ca (i,j) theo hng . Theo nh ngha im
bin cc b th (i,j) l bin nu I(i,j) cc i a phng theo hng
gradient  Nu I(i,j) > I1 v I(i,j) > I2 th mi gi li I(i,j), ngc li xa
I(i,j) v im nh nn.
+ Bc 5: Phn ngng. Vi cc im c gi li, thc hin ly
ngng gradient bin ln cui xc nh cc im bin thc s.

3.3. PHT HIN BIN GIN TIP


3.3.1 Mt s khi nim c bn
*nh v im nh
nh s l mt mng s thc 2 chiu (Iij) c kch thc (MN), trong
mi phn t Iij(i = 1,...,M; j = 1,...,N) biu th mc xm ca nh ti (i,j)
tng ng.
nh c gi l nh nh phn nu cc gi tr Iij ch nhn gi tr 0
hoc 1.
y ta ch xt ti nh nh phn v nh bt k c th a v dng
nh phn bng k thut phn ngng. Ta k hiu l tp cc im vng
(im en) v l tp cc im nn (im trng).
*Cc im 4 v 8-lng ging
Gi s (i,j) l mt im nh, cc im 4-lng ging l cc im k
trn, di, tri, phi ca (i,j):
N4(i,j) = {(i,j) : |i-i|+|j-j| = 1},
v nhng im 8-lng ging gm:
N8(i,j) = {(i,j) : max(|i-i|,|j-j|) =1}.
Trong Hnh 3.1 biu din ma trn 8 lng ging k nhau, cc im P0,
P2, P4, P6 l cc 4-lng ging ca im P, cn cc im P0, P1, P2, P3, P4, P5,
P6, P7 l cc 8-lng ging ca P.

50

P3

P2

P1

P4

P0

P5

P6

P7

Hnh 3.1. Ma trn 8-lng ging k nhau

*i tng nh
Hai im Ps, Pe E, E hoc c gi l 8-lin thng (hoc 4lin thng) trong E nu tn ti tp cc im c gi l ng i
(io,jo)...(in,jn) sao cho (io,jo)= Ps, (in,jn)= Pe, (ir,jr) E v (ir,jr) l 8-lng
ging (hoc 4-lng ging tng ng) ca (ir-1,jr-1) vi r = 1,2,...,n
Nhn xt: Quan h k-lin thng trong E (k=4,8) l mt quan h phn x,
i xng v bc cu. Bi vy l mt quan h tng ng. Mi lp
tng ng c gi l mt thnh phn k-lin thng ca nh. V sau ta s
gi mi thnh phn k-lin thng ca nh l mt i tng nh.

3.3.2. Chu tuyn ca mt i tng nh


nh ngha 3.1: [Chu tuyn]
Chu tuyn ca mt i tng nh l dy cc im ca i tng nh
P1,,Pn sao cho Pi v Pi+1 l cc 8-lng ging ca nhau (i=1,...,n-1) v P1 l
8-lng ging ca Pn, i Q khng thuc i tng nh v Q l 4-lng
ging ca Pi (hay ni cch khc i th Pi l bin 4). K hiu <P1P2..Pn>.
Tng cc khong cch gia hai im k tip ca chu tuyn l di ca
chu tuyn v k hiu Len(C) v hng PiPi+1 l hng chn nu Pi v Pi+1 l
cc 4 lng ging (trng hp cn li th PiPi+1 l hng l).
Hnh 3.2 di y biu din chu tuyn ca nh, trong , P l im
khi u chu tuyn.
P

Hnh 3.2. V d v chu tuyn ca i tng nh

51

nh ngha 3.2 [Chu tuyn i ngu]


Hai chu tuyn C= <P1P2..Pn> v C= <Q1Q2..Qm> c gi l i
ngu ca nhau nu v ch nu i j sao cho:
(i) Pi v Qj l 4-lng ging ca nhau.
(ii) Cc im Pi l vng th Qj l nn v ngc li.
nh ngha 3.3 [Chu tuyn ngoi]
Chu tuyn C c gi l chu tuyn ngoi (Hnh 3.3a) nu v ch nu
(i) Chu tuyn i ngu C l chu tuyn ca cc im nn
(ii) di ca C nh hn di C
nh ngha 3.4 [Chu tuyn trong]
Chu tuyn C c gi l chu tuyn trong (Hnh 3.3b) nu v ch nu:
(i) Chu tuyn i ngu C l chu tuyn ca cc im nn
(ii) di ca C ln hn di C
Chu tuyn C

Chu tuyn C

a) Chu tuyn ngoi

Chu tuyn C
Chu tuyn C

b) Chu tuyn trong

Hnh 3.3. Chu tuyn trong, chu tuyn ngoi

nh ngha 3.5 [im trong v im ngoi chu tuyn]


Gi s C= <P1P2..Pn> l chu tuyn ca mt i tng nh v P l mt
im nh. Khi :
(i) Nu na ng thng xut pht t P s ct chu tuyn C ti s l ln,
th P c gi l im trong chu tuyn C v k hiu in(P,C)
(ii) Nu PC v P khng phi l im trong ca C, th P c gi l im
ngoi chu tuyn C v k hiu out(P,C).
B 3.1 [Chu tuyn i ngu]
Gi s E l mt i tng nh v C= < P1P2..Pn> l chu tuyn ca
E, C =<Q1Q2..Qm> l chu tuyn i ngu tng ng. Khi :

(i) Nu C l chu tuyn trong th in(Qi,C) i (i=1,....,m)


52

(ii) Nu C l chu tuyn ngoi th in(Pi,C) i (i=1,...,n)


B 3.2 [Phn trong/ngoi ca chu tuyn]
Gi s E l mt i tng nh v C l chu tuyn ca E. Khi :
(i) Nu C l chu tuyn ngoi th x E sao cho xC, ta c in(x,C)
(ii) Nu C l chu tuyn trong th x E sao cho xC, ta c out(x,C)
nh l 3.1 [Tnh duy nht ca chu tuyn ngoi]
Gi s E l mt i tng nh v CE l chu tuyn ngoi ca E.
Khi CE l duy nht.

3.3.3. Thut ton d bin tng qut


Biu din i tng nh theo chu tuyn thng da trn cc k thut
d bin. C hai k thut d bin c bn. K thut th nht xt nh bin thu
c t nh vng sau mt ln duyt nh mt th, sau p dng cc
thut ton duyt cnh th. K thut th hai da trn nh vng, kt hp
ng thi qu trnh d bin v tch bin. y ta quan tm cch tip cn th
hai.
Trc ht, gi s nh c xt ch bao gm mt vng nh 8-lin
thng , c bao bc bi mt vnh ai cc im nn. D thy l mt
vng 4-lin thng ch l mt trng ring ca trng hp trn.
V c bn, cc thut ton d bin trn mt vng u bao gm cc
bc sau:
Xc nh im bin xut pht
D bo v xc nh im bin tip theo
Lp bc 2 cho n khi gp im xut pht
Do xut pht t nhng tiu chun v nh ngha khc nhau v im
bin, v quan h lin thng, cc thut ton d bin cho ta cc ng bin
mang cc sc thi rt khc nhau.
Kt qu tc ng ca ton t d bin ln mt im bin ri l im bin
ri+1 (8-lng ging ca ri). Thng thng cc ton t ny c xy dng nh
mt hm i s Boolean trn cc 8-lng ging ca ri. Mi cch xy dng
cc ton t u ph thuc vo nh ngha quan h lin thng v im bin.
Do s gy kh khn cho vic kho st cc tnh cht ca ng bin.
Ngoi ra, v mi bc d bin u phi kim tra tt c cc 8-lng ging ca
mi im nn thut ton thng km hiu qu. khc phc cc hn ch
trn, thay v s dng mt im bin ta s dng cp im bin (mt thuc

53

, mt thuc ), cc cp im ny to nn tp nn vng, k hiu l NV v


phn tch ton t d bin thnh 2 bc:
Xc nh cp im nn vng tip theo.
La chn im bin

Trong bc th nht thc hin chc nng ca mt nh x trn tp


NV ln NV v bc th hai thc hin chc nng chn im bin.
Thut ton d bin tng qut
Bc 1: Xc nh cp nn-vng xut pht
Bc 2: Xc nh cp nn-vng tip theo
Bc 3: La chn im bin vng
Bc 4: Nu gp li cp xut pht th dng, nu khng quay li
bc 2.
Vic xc nh cp nn-vng xut pht c thc hin bng cch duyt
nh ln lt t trn xung di v t tri qua phi ri kim tra iu kin la
chn cp nn-vng. Do vic chn im bin ch mang tnh cht quy c, nn
ta gi nh x xc nh cp nn-vng tip theo l ton t d bin.
nh ngha 3.6 [Ton t d bin]
Gi s T l mt nh x nh sau: T: NV NV
(b,r) (b,r)
Gi T l mt ton t d bin c s nu n tho mn iu kin: b,r l
cc 8-lng ging ca r.
Gi s (b,r) NV; gi K(b,r) l hm chn im bin. Bin ca mt
dng c th nh ngha theo mt trong ba cch:
Tp nhng im thuc c mt trn NV, tc l K(b,r)= r
Tp nhng im thuc c trn NV, tc l K(b,r)= b
Tp nhng im o nm gia cp nn-vng, tc l K(b,r) l nhng
im nm gia hai im b v r.

Cch nh ngha th ba tng ng mi cp nn-vng vi mt im


bin. Cn i vi cch nh ngha th nht v th hai mt s cp nnvng c th c chung mt im bin. Bi vy, qu trnh chn im bin
c thc hin nh sau:
i:= 1; (bi,ri):= (bo,ro);
While K(bi,ri)<>K(bn,rn) and i8 do
54

Begin
(bi+1,ri+1)= T(bi,ri); i:= i+1;
End;
iu kin dng
Cp nn-vng th n trng vi cp nn vng xut pht: (bn,rn)= (bo,ro)
* Xc nh cp nn vng xut pht
Cp nn vng xut pht c xc nh bng cch duyt nh ln lt
t trn xung di v t tri sang phi im em u tin gp c cng
vi im trng trc (theo hng 4) to nn cp nn vng xut pht.
* Xc nh cp nn vng tip theo
u vo: pt, dir
V d: (3, 2) 4
Point orient []= {(1,0);(1;-1);(0;-1);(-1;-1);(-1;0);(-1,1);(0,1);(1,1)};
//Hm tm hng c im en gn nht
BYTE GextNextDir(POINT pt, BYTE dir)
{
BYTE pdir= (dir + 7)%8;
do{
if(getpixel(pt. x+orient [pdir]. x,pt.y+orient [pdir]. y))==BLACK)
return pdir;
pdir = (pdir + 7) %8;
}while(pdir ! = dir);
return. ERR; //im c lp
}
//Gn gi tr cho bc tip theo
pdir = GetNextDir(pt, dir);
if(pdir==ERR) //Kim tra c l im c lp khng?
return. ERR; //im c lp
pt. x = pt. x + orient [pdir]. x;
pt. y = pt. y + orient [pdir]. y ;

55

tnh gi tr cho hng tip theo ta lp bng da trn gi tr pdir


tnh c trc theo cc kh nng c th xy ra:
pdir

im trng trc

Trng so vi en mi

Do cng thc tnh hng tip theo s l :


dir= ((pdir+3)/ 2 * 2)%8 ;

3.4. PHT HIN BIN DA VO TRUNG BNH CC B


3.4.1. Bin v bin i v mc xm
Nh trnh by trn, trong thc t ngi ta thng dng hai
phng php php hin bin c bn l: Pht hin bin trc tip v gin
tip. Phn ny cp n k thut mi da vo trung bnh cc b trn c
s nh gi chnh lch v gi tr mc xm ca im nh so vi cc
im ln cn do kt hp c u im ca c hai khuynh hng trc
tip v gin tip.
i vi cc nh mu theo m hnh no u c th chuyn sang m
hnh gm 3 thnh phn mu R, G, B. Sau d dng chuyn cc nh mu
sang dng nh a cp xm. Chng hn:
Gray = ( R + G + B ) / 3
Vic x l, thao tc trn cc nh xm c mt u im l d x l hn
cc nh mu m vn gi c cc c tnh ca nh. Cc nh trng en tuy
d x l nht nhng s b mt nhiu chi tit sau khi chuyn i.
Mt cch l tng th bin thin mc xm ca im nh khi qua
bin phi c dng:
Mc xm

x
56

Trong thc t dng th ny ch gp trong cc nh trng en (nh


xm c hai mu), cn vi cc nh thc th th ca n c dng:
Mc xm

Kh khn cho vic phn tch cc nh thc l ch do s bin thin v


mc xm ca im nh khng phi ch c th hin theo mt hng duy
nht m phi xt theo c tm hng ca cc im nh lng ging, ti cc
vng bin v ln cn bin s bin thin mc xm ca cc im nh thng
khng t ngt m tri qua mt khong bin thin khng u nhng c tc
bin thin nhanh. Chng ta c th xc nh c cc ng bin nh
th ny bng k thut Laplace nhng nh trn ni k thut ny rt
nhy cm vi nhiu m nhiu hu nh li l vn m trong bc nh no
cng c. Ngoi ra, trong thc t khi d bin cho cc nh xm ty theo mc
ch x l sau ny m ngi ta c th mun ly bin ca tt c cc i
tng trong nh hoc ch mt s i tng chnh trong nh. Cc k thut
o hm do s dng cc mt n l cc ma trn nhn chp nn kh iu
chnh chi tit ca nh bin thu c. Mun lm c iu ny li phi
tnh ton li cc gi tr ca cc phn t trong ma trn theo cc cng thc
nht nh, rt phc tp v tn km. Khng nhng th nh thu c sau khi
lc khng lm mt i c tt c cc im khng thuc ng bin m ch
lm ni ln cc im nm trn bin v mun nhn dng c cc i tng
th ta cn phi x l thm mt vi bc na th mi thu c nh bin thc
s. C th nhn thy l cc thut ton d bin truyn thng m chng ta
hay dng vn cha t c s hon thin nh mong mun [3,8].

3.4.2. Pht hin bin da vo trung bnh cc b


tng chnh ca thut ton c xut l: Xc nh tt c cc
im nm trn bin khng theo hng tm kim v s dng cc ma trn
lc, thng qua vic so snh chnh lch v mc xm ca n so vi mc
xm chung ca cc im nh ln cn (mc xm nn). Trc ht gi tr xm
trung bnh ca cc im nh nm trong phm vi ca ma trn 33 hoc 55
c tm l im nh ang xt s c tnh ton. Nu nh chnh lch mc
xm gia im ang xt vi gi tr xm trung bnh tha mn ln hn mt
mc ti thiu 1 no (PTB+ 1< P) th chng ta s coi n l im bin

57

v ghi nhn li, cn cc im khng tha mn iu kin trn s c coi l


im nn.

N=5
a) Ma trn im nh trc khi lc
b) Ma trn im nh sau khi lc
Hnh 3.4. Ma trn im nh trc v sau lc

Thut ton c th c m t nh sau:


for (i=0; i< biHeight; i++)
for (j=0; j< biWidth; j++)
{
tt_GrayScale=0;
for (ii=i-1; ii<=i+1; ii++)
for (jj=j-1; jj<=j+1; jj++)
tt_GrayScale+=GetPoint(pOrgImg,ii,jj);
if (tt_GrayScale>9*GetPoint(pOrgImg,i,j)+1)
SetPoint(pBdImg,i,j,BLACK);
}
Trong :
biWidth, biHeight: l chiu rng v chiu cao ca nh tnh theo
n
v Pixel.
pOrgImg, pBdImg: ln lt l cc con tr tr n cc vng d liu
ca nh gc v nh bin.
tt_GrayScale: l tng gi tr xm ca cc im nh thuc ma
trn 33 c tm l im nh ang xt.
1: l chnh lch mc xm ca im nh ang xt so vi gi tr
xm trung bnh ca ma trn.
SetPoint() v GetPoint(): l cc hm c, ghi gi tr im nh.
Chng ta c th so snh c hiu qu ca thut ton pht hin bin
ny so vi cc thut ton pht hin bin truyn thng thng qua cc hnh
minh ha di y. Hnh 3.5a l nh gc, Hnh 3.5b l nh bin qua lc

58

Sobel Hx, Hnh 3.5c l nh bin qua lc Sobel Hy, Hnh 3.5d l nh bin
qua lc Kirsh, Hnh 3.5e l nh bin qua lc Laplace. Hnh 3.6 l cc nh
bin thu c khi s dng thut ton pht hin bin xut da vo trung
bnh cc b vi gi tr 1 khc nhau. Hnh 3.6a l nh bin thu c vi
1= 25, Hnh 3.6b l nh bin thu c vi 1= 250.

a) nh gc

b) nh qua lc Sobel Hx

d) nh qua lc Kirsh

c) nh qua lc Sobel Hy

e) nh qua lc Laplace

Hnh 3.5. Cc nh bin theo cc thut ton pht hin bin truyn thng

a) nh bin thu c vi 1= 25

b) nh bin thu c vi 1= 250

Hnh 3.6. Cc nh bin kt qu thu c theo thut ton xut

*Nhn xt:
Chng ta c nhn xt l nh gc s dng trong chng trnh c mu
nn kh ti v c rt nhiu nhiu. Cc b lc s dng trong minh ha trn
u mc phi vn ny. Thut ton d bin s dng trong chng trnh
tuy hn ch c nhiu nhiu so vi vic s dng cc b lc v lm ni
r cc ng bin nhng vn khng loi b c hu ht cc nhiu. Khi p
dng thut ton trn chng ta vn c th lm gim bt nhiu i nhiu hn
na bng cch tng gi tr ca h s delta ln. Nhng khi cc ng
bin thu c cng b t on v m i nhiu.
59

Thut ton c phc tp t l vi kch thc nh v kch thc ca


s. Vi phc tp ca thut ton l O(n2) nn n thc hin vic tm bin
kh nhanh, nh bin thu c ch gm cc im nh v im bin nn d
x l, bn thn thut ton ny cng t chu nh hng ca nhiu hn l k
thut Sobel mc d n c kh nng pht hin kh tt cc vng bin nhiu.
Nhng cng ging cc phng php pht hin bin trc tip khc l n cho
kt qu ng bin c dy khng u.

3.5. PHT HIN BIN DA VO CC PHP TON HNH


THI
3.5.1. Xp x trn v xp x di i tng nh
Bin l vn quan trng trong x l nh v nhn dng, v cc c
im trch chn trong qu trnh nhn dng ch yu da vo bin. Trong
thc t ngi ta thng dng hai phng php php hin bin c bn l:
Pht hin bin trc tip v gin tip. Phn ny cp n mt tip cn mi
trong pht hin bin da vo cc php ton hnh thi thng qua cc k
thut xp x trn v xp x di i tng.
Trong [2,7] cng cp n k thut pht hin bin da vo php
ton hnh thi. Nhng cc k thut pht hin bin trc tip, gin tip v
da vo cc php ton hnh thi k trn u xut pht t quan im bin
ca i tng l mt tp hp con ca i tng. Trong thc t chng ta
thng hiu ng bin l khu vc ranh gii bao gm c hai phn thuc
i tng v khng thuc i tng. phn di y, chng ti xut
mt k thut pht hin bin da vo php ton hnh thi theo quan nim
ny, xut pht t c s nh l 2.1 c chng minh trn.
Bin (hay ng bin) c th hiu n gin l cc ng bao ca cc
i tng trong nh chnh l ranh gii gia i tng v nn. Vic xem
ranh gii l phn c to lp bi cc im thuc i tng v thuc nn
cho php ta xc nh bin da trn cc php ton hnh thi [2,7].
Theo nh l 2.1 ta c: (XB)B X B
Nh vy, tp CLOSE(X,B) = (XB)B c th c xem nh l xp
x trn ca tp X theo mu B (Hnh 3.7).

60

CLOSE(X,B)= (XB)B
Xp x trn ca X (cha X)

X B = CLOSE(X,B)\ OPEN(X,B)
Xp x bin ca X theo mu B

OPEN(X,B)= ((XB)B)
Xp x di ca X (thuc X)

Hnh 3.7. Xp x trn v di theo mu B ca X

Cng theo nh l 2.1 ta c, (XB)B X B


Do vy, tp OPEN(X,B) = (XB)B c th c xem nh l xp x
di ca tp X theo mu B.
T , tp CLOSE(X,B)\ OPEN(X,B) c th c xem nh l xp x
bin ca tp X theo mu v qu trnh xp x bin ca X theo mu B k hiu
l X B.
tng chnh xc, ngi ta thng xem B l dy cc phn t
cu trc.
B = {Bi, 1 i n }
V xp x bin ca X theo tp cu trc B c xc nh:
n

XB = XB i
i =1

3.5.1. Thut ton pht hin bin da vo php ton hnh thi
Vo

: nh X v dy mu B= {Bi, 1 i n };

Ra

: Bin ca i tng theo mu B

Phng php:
Bc 1: Tnh X Bi i=1,n
n

Bc 2: Tnh

( X B )
i

i =1

Trong Hnh 3.8a di y l nh gc vi 256 mc xm, Hnh 3.8b l


nh bin thu c qua pht hin bin bng Sobel, Hnh 3.8c l nh bin
thu c qua pht hin bin bng Laplace. Hnh 3.8d l nh bin kt qu

61

thc hin bi thut ton pht hin bin bng cc php ton hnh thi vi
ngng tch = 128 v cc mu tch bin Bi l:

B1

B2

B3

B4

a) nh gc a cp xm

b) nh bin thu c qua Sobel

c) nh bin thu c qua Laplace

d) nh bin kt qu da vo php ton


hnh thi

Hnh 3.8. Pht hin bin bi thut ton da vo php ton hnh thi

62

Chng 4:

XNG V CC K THUT TM XNG

4.1. GII THIU


Xng c coi nh hnh dng c bn ca mt i tng, vi s t
cc im nh c bn. Ta c th ly c cc thng tin v hnh dng nguyn
bn ca mt i tng thng qua xng.
Mt nh ngha xc tch v xng da trn tnh continuum (tng t
nh hin tng chy ng c) c a ra bi Blum (1976) nh sau: Gi
thit rng i tng l ng nht c ph bi c kh v sau dng ln
mt vng bin la. Xng c nh ngha nh ni gp ca cc vt la
v ti chng c dp tt.

a) nh gc

b) nh xng
Hnh 4.1. V d v nh v xng

K thut tm xng lun l ch nghin cu trong x l nh


nhng nm gn y. Mc d c nhng n lc cho vic pht trin cc
thut ton tm xng, nhng cc phng php c a ra u b mt
mt thng tin. C th chia thnh hai loi thut ton tm xng c bn:
Cc thut ton tm xng da trn lm mnh
Cc thut ton tm xng khng da trn lm mnh

4.2. TM XNG DA TRN LM MNH


4.2.1. S lc v thut ton lm mnh
Thut ton lm mnh nh s nh phn l mt trong cc thut ton
quan trng trong x l nh v nhn dng. Xng cha nhng thng tin bt

63

bin v cu trc ca nh, gip cho qu trnh nhn dng hoc vect ho sau
ny.
Thut ton lm mnh l qu trnh lp duyt v kim tra tt c cc im
thuc i tng. Trong mi ln lp tt c cc im ca i tng s c
kim tra: nu nh chng tho mn iu kin xo no tu thuc vo mi
thut ton th n s b xo i. Qu trnh c lp li cho n khi khng cn
im bin no c xo. i tng c bc dn lp bin cho n khi no
b thu mnh li ch cn cc im bin.
Cc thut ton lm mnh c phn loi da trn phng php x l
cc im l thut ton lm mnh song song v thut ton lm mnh tun t.
Thut ton lm mnh song song, l thut ton m trong cc im
c x l theo phng php song song, tc l c x l cng mt lc.
Gi tr ca mi im sau mt ln lp ch ph thuc vo gi tr ca cc lng
ging bn cnh (thng l 8-lng ging) m gi tr ca cc im ny
c xc nh trong ln lp trc . Trong my c nhiu b vi x l mi
vi x l s x l mt vng ca i tng, n c quyn c t cc im
vng khc nhng ch c ghi trn vng ca n x l.
Trong thut ton lm mnh tun t cc im thuc i tng s c
kim tra theo mt th t no (chng hn cc im c xt t tri qua
phi, t trn xung di). Gi tr ca im sau mi ln lp khng nhng
ph thuc vo gi tr ca cc lng ging bn cnh m cn ph thuc vo
cc im c xt trc trong chnh ln lp ang xt.
Cht lng ca thut ton lm mnh c nh gi theo cc tiu
chun c lit k di y nhng khng nht thit phi tho mn ng
thi tt c cc tiu chun.
Bo ton tnh lin thng ca i tng v phn b ca i tng
S tng hp gia xng v cu trc ca nh i tng
Bo ton cc thnh phn lin thng
Bo ton cc im ct
Xng ch gm cc im bin, cng mnh cng tt
Bn vng i vi nhiu
Xng cho php khi phc nh ban u ca i tng
Xng thu c chnh gia ng nt ca i tng c
lm mnh
Xng nhn c bt bin vi php quay.

64

4.2.2. Mt s thut ton lm mnh


Trong phn ny im qua mt s c im, u v khuyt im ca cc
thut ton c nghin cu.
1o. Thut ton lm mnh c in l thut ton song song, to ra
xng 8 lin thng, tuy nhin n rt chm, gy t nt, xo hon
ton mt s cu hnh nh.
2o. Thut ton lm mnh ca Toumazet bo ton tt c cc im ct
khng gy t nt i tng. Tuy nhin, thut ton c nhc im
l rt chm, rt nhy cm vi nhiu, xng ch l 4-lin thng v
khng lm mnh c vi mt s cu hnh phc tp
3o. Thut ton lm mnh ca Y.Xia da trn ng bin ca i
tng, c th ci t theo c phng php song song v tun t.
Tc ca thut ton rt nhanh. N c nhc im l gy t nt,
xng to ra l xng gi (c dy l 2 phn t nh).
4o. Thut ton lm mnh ca N.J.Naccache v R.Shinghal. Thut ton
c u im l nhanh, xng to ra c kh nng khi phc nh ban
u ca i tng. Nhc im chnh ca thut ton l rt nhy
vi nhiu, xng nhn c phn nh cu trc ca i tng thp.
5o. Thut ton lm mnh ca H.E.Lu P.S.P Wang tng i nhanh,
gi c tnh lin thng ca nh, nhng li c nhc im l
xng to ra l xng 4-lin thng v xo mt mt s cu
hnh nh.
6o. Thut ton lm mnh ca P.S.P Wang v Y.Y.Zhang da trn
ng bin ca i tng, c th ci t theo phng php song
song hoc tun t, xng l 8-lin thng, t chu nh hng ca
nhiu. Nhc im chnh ca thut ton l tc chm.
7o. Thut ton lm mnh song song thun tu nhanh nht trong cc
thut ton trn, bo ton tnh lin thng, t chu nh hng ca
nhiu. Nhc im l xo hon ton mt s cu hnh nh, xng
to ra l xng 4-lin thng.

4.3. TM XNG KHNG DA TRN LM MNH


tch c xng ca i tng c th s dng ng bin ca i
tng. Vi im p bt k trn i tng, ta bao n bi mt ng bin.
Nu nh c nhiu im bin c cng khong cch ngn nht ti p th p
nm trn trc trung v. Tp tt c cc im nh vy lp thnh trc trung v
hay xng ca i tng. Vic xc nh xng c tin hnh thng qua
hai bc:
65

Bc th nht, tnh khong cch t mi im nh ca i tng n


im bin gn nht. Nh vy cn phi tnh ton khong cch ti tt c
cc im bin ca nh.

Bc th hai, khong cch nh c tnh ton v cc im nh c


gi tr ln nht c xem l nm trn xng ca i tng.

4.3.1. Khi qut v lc Voronoi


Lc Voronoi l mt cng c hiu qu trong hnh hc tnh ton.
Cho hai im Pi, Pj l hai phn t ca tp gm n im trong mt phng.
Tp cc im trong mt phng gn Pi hn Pj l na mt phng H(Pi, Pj)
cha im Pi v b gii hn bi ng trung trc ca on thng PiPj. Do
, tp cc im gn Pi hn bt k im Pj no c th thu c bng cch
giao n-1 cc na mt phng H(Pi, Pj):
V(Pi) = H(Pi, Pj) ij (i= 1,...,n)

(4.1)

nh ngha 4.1 [a gic/S Voronoi]


S Voronoi ca l hp ca tt c cc V(Pi)
Vor() = V(Pi) Pi (l mt a gic)

(4.2)

nh ngha 4.2 [a gic Voronoi tng qut]


Cho tp cc im , a gic Voronoi ca tp con U ca c nh
ngha nh sau:
V(U) = {P| v U, w \ U : d(P,v) < d(P,w)}
= V(Pi) Pi U

(4.3)

4.3.2. Trc trung v Voronoi ri rc


nh ngha 4.3 [Bn khong cch - Distance Map]
Cho i tng S, i vi mi (x, y)S, ta tnh gi tr khong cch
map(x, y) vi hm khong cch d(.,.) nh sau:
(x, y)S: map(x, y) = min d[(x, y), (xi, yi)]
i im bin ca S
trong (x , y ) B(S) - tp cc
i

(4.4)

Tp tt c cc map(x, y), k hiu l DM(S), c gi l bn khong


cch ca S.
Ch : Nu hm khong cch d(.,.) l khong cch Euclide, th phng
trnh (4.4) chnh l khong cch ngn nht t mt im bn trong i
tng ti bin. Do , bn khong cch c gi l bn khong cch
Euclide EDM(S) ca S. nh ngha trn c dng cho c hnh ri rc ln
lin tc.
66

nh ngha 4.4 [Tp cc im bin sinh]


Cho map(x, y) l khong cch ngn nht t (x, y) n bin (theo nh
ngha 4.3). Ta nh ngha: map-1(x, y) = {p| p B(S), d(p,
(x, y)):=map(x, y)}
Khi tp cc im bin sinh ^B(S) c nh ngha bi:
^B(S) = map-1(x, y), (x, y) S

(4.5)

Do S c th cha cc ng bin ri nhau, nn ^B(S) bao gm nhiu


tp con, mi tp m t mt ng bin phn bit:
^B(S)={B1(S),..BN(S)}

(4.6)

nh ngha 4.5 [Trc trung v Voronoi ri rc (DVMA)]


Trc trung v Voronoi ri rc c nh ngha l kt qu ca s
Voronoi bc nht ri rc ca tp cc im bin sinh giao vi hnh sinh S :
DVMA(^B(S)) = Vor(^B(S)) S

(4.7)

4.3.3. Xng Voronoi ri rc


nh ngha 4.6 [Xng Voronoi ri rc - DiscreteVoronoi Skeleton]
Xng Voronoi ri rc theo ngng T, k hiu l SkeDVMA(^B(S),T)
(hoc Ske(^B(S),T)) l mt tp con ca trc trung v Voronoi:
SkeDVMA(^B(S),T)= {(x,y)| (x,y)DVMA(^B(S)), (x,y) > T} (4.8)
: l hm hiu chnh.
D thy nu ngng T cng ln th cng th s lng im tham gia
trong xng Vonoroi cng t (Hnh 4.2).

a)

c)

b)

d)

Hnh 4.2. Xng Voronoi ri rc nh hng ca cc hm hiu chnh khc nhau.


(a) nh nh phn. (b) S Voronoi. (c) Hiu chnh bi hm Potential, T=9.0.
(d) Hiu chnh bi hm Potential, T=18.0

67

4.3.4. Thut ton tm xng


Trong mc ny s trnh by tng c bn ca thut ton tm xng
v m t bng ngn ng ta Pascal.
Tng trng: Vic tnh ton s Voronoi c bt u t mt im
sinh trong mt phng. Sau im sinh th hai c thm vo v qu trnh
tnh ton tip tc vi a gic Voronoi tm c vi im va c thm
vo . C nh th, qu trnh tnh ton s Voronoi c thc hin cho
n khi khng cn im sinh no c thm vo. Nhc im ca chin
lc ny l mi khi mt im mi c thm vo, n c th gy ra s phn
vng ton b cc a gic Voronoi c tnh.
Chia tr: Tp cc im bin u tin c chia thnh hai tp im
c kch c bng nhau. Sau thut ton tnh ton s Voronoi cho c hai
tp con im bin . Cui cng, ngi ta thc hin vic ghp c hai s
Voronoi trn thu c kt qu mong mun. Tuy nhin, vic chia tp cc
im bin thnh hai phn khng phi c thc hin mt ln, m c lp
li nhiu ln cho n khi vic tnh ton s Voronoi tr nn n gin. V
th, vic tnh s Voronoi tr thnh vn lm th no trn hai s
Voronoi li vi nhau.
Thut ton s trnh by y l s kt hp ca hai tng trn.
Tuy nhin, n s mang nhiu dng dp ca thut ton chia tr.
Hnh 4.3 minh ho tng ca thut ton ny. Mi mt im bin
c chia thnh hai phn (bn tri: 1- 6, bn phi: 7-11) bi ng gp
khc , v hai s Voronoi tng ng Vor(SL) v Vor(SR). thu c
s Vornonoi Vor(SL SR), ta thc hin vic trn hai s trn v xc
nh li mt s a gic s b sa i do nh hng ca cc im bn cnh
thuc s kia. Mi phn t ca s l mt b phn ca ng trung trc
ni hai im m mt im thuc Vor(SL) v mt thuc Vor(SR). Trc khi
xy dng , ta tm ra phn t u v cui ca n. Nhn vo hnh trn, ta
nhn thy rng cnh 1 v 5 l cc tia. D nhn thy rng vic tm ra cc
cnh u v cui ca tr thnh vic tm cnh vo t v cnh ra t.
1 t

3
1
CH(SR)

CH(SL)

11

9
10

2
5

Hnh 4.3. Minh ho thut ton trn hai s Voronoi

68

Sau khi tm c t v t, cc im cui ca t c s dng


xy dng phn t u tin ca (1 trong hnh trn). Sau thut ton tm
im giao ca vi Vor(SL) v Vor(SR). Trong v d trn, u tin giao
vi V(3). K t y, cc im nm trn phn ko di s gn im 6 hn
im 3. Do , phn t tip theo 2 ca s thuc vo ng trung trc
ca im 6 v im 7. Sau im giao tip theo ca s thuc v
Vor(SL); by gi s i vo V(9) v 2 s c thay th bi 3. Qu trnh
ny s kt thc khi gp phn t cui 5.
Trn y ch l minh ho cho thut trn hai s Voronoi trong chin
lc chia tr. Tuy nhin, trong thut ton s trnh by y th s thc
hin c khc mt cht. Tp cc im nh khng phi c a vo ngay t
u m s c qut vo tng dng mt. Gi s ti bc th i, ta thu
c mt s Voronoi gm i-1 hng cc im sinh Vor(Si-1). Tip theo, ta
qut ly mt hng Li cc im nh t tp cc im bin cn li. Thc hin
vic tnh s Voronoi Vor(Li) cho hng ny, sau trn Vor(Si-1) vi
Vor(Li). Kt qu ta s c mt s mi, v li thc hin vic qut hng
Li+1 cc im sinh cn li v.v.. Qu trnh ny s kt thc khi khng cn im
bin no thm vo s Voronoi. Do Vor(Li) s c dng rng lc (nu
Li c k im th Vor(Li) s gm k-1 ng thng ng), nn vic trn
Vor(Si-1) vi Vor(Li) c phn n gin hn.
v5

p8
t

p6

v6

p9
v4

v3

v2
p7

p10

p4

Cc im thuc p1
Si-1

v1

p2

t
p5
p3

Hnh 4.4. Minh ho thut ton thm mt im bin vo s Voronoi

Gii thut trn c th c m t bng ngn ng ta Pascal nh sau:


Procedure VORONOI
(*Si: Tp cc im ca i dng qut u tin,
0 <= i <=iMAX,
Vor(Si) s Vorronoi ca Si *)

69

Begin
i:=0; Si:=rng;
While (i<imax Si straight_line) do
Begin
(*Khi to s Voronoi cho n khi n cha t nht mt nh*)
increment i;
GetScanLine Li;
Vor(Si) = VoroPreScan(Vor(Si-1, Li));
End
While (i < imax) do
Begin
Increment i;
GetScanLine Li;
Vor(Li) := cc ng trung trc sinh bi cc im sinh thuc Li
Vor(Si) := VoroLink(Vor(Si-1), Vor(Li));
End
End.
Gi s xt trn h to thc. nh vo c qut t di ln. To
y (bin i) tng ng vi tng dng qut c tng dn theo tng dng.
Trong th tc trn, hm quan trng nht l hm VoroLink, hm ny thc
hin vic trn s Voronoi ca Li-1 dng c qut trc vi s
Voronoi ca dng hin ti th i. Trong vng lp trn, hm VoroPreScan l
mt bin th ca hm VoroLink, c nhim v khi to s Voronoi v
thot khi vng lp ngay khi n thnh lp c s Voronoi cha t nht
mt nh. Hm VoroLink thc hin vic trn hai s Voronoi Vor(Si-1)
v Vor(Li) vi nhau thnh Vor(Si).

70

Chng 5:

CC K THUT HU X L

5.1. RT GN S LNG IM BIU DIN


5.1.1. Gii thiu
Rt gn s lng im biu din l k thut thuc phn hu x l.
Kt qu ca phn d bin hay trch xng thu c 1 dy cc im lin
tip. Vn t ra l hiu c th b bt cc im thu c gim thiu
khng quan lu tr v thun tin cho vic i sch hay khng.
Bi ton:
Cho ng cong gm n im trong mt phng (x1, y1), (x2, y2)
(xn,yn). Hy b bt 1 s im thuc ng cong sao cho ng cong mi
nhn c l (Xi1; Yi1), (Xi2; Yi2) (Xim; Yim) gn ging vi ng
cong ban u.
* Mt s o gn ging
+ Chiu di (chiu rng) ca hnh ch nht nh nht cha ng cong
+ Khong cch ln nht t ng cong n on thng ni 2 u mt
ca ng cong
+ T l gia chiu di v chiu rng ca hnh ch nht nh nht cha
ng con
+ S ln ng cong ct on thng ni 2 u mt

5.1.2. Thut ton Douglas Peucker


5.1.2.1. tng

h>

Hnh 5.1. n gin ha ng cng theo thut ton Douglas Peucker

tng c bn ca thut ton Douglas-Peucker l xt xem khong


cch ln nht t ng cong ti on thng ni hai u mt ng cong
(xem Hnh 5.1) c ln hn ngng khng. Nu iu ny ng th im
xa nht c gi li lm im chia ng cong v thut ton c thc
71

hin tng t vi hai ng cong va tm c. Trong trng hp ngc


li, kt qu ca thut ton n gin ho l hai im u mt ca ng
cong.
Thut ton Douglas-Peucker:
Bc 1: Chn ngng .
Bc 2: Tm khong cch ln nht t ng cong ti on thng
ni hai u on ng cong h.
Bc 3: Nu h th dng.
Bc 4: Nu h > th gi li im t cc i ny v quay tr li
bc 1.
Nhn xt: Thut ton ny t ra thun li i vi cc ng cong thu nhn
c m gc l cc on thng, ph hp vi vic n gin ho trong qu
trnh vct cc bn v k thut, s thit k mch in v.v..
5.1.2.2. Chng trnh
//Hm tnh ng cao t dinh n on thng ni hai im dau, cuoi
float Tinhduongcao (POINT dau, POINT cuoi, POINT dinh)
{
floot h;
tnh ng cao
returm h ;
}
//Hm quy nhm nh du loi b cc im trong ng cong
void DPSimple(POINT *pLINE,int dau,int cuoi,BOOL *chiso,float )
{
int

i, index = dau;

float h, hmax = 0;
for(i = dau + 1; i < cuoi; i++)
{
h= Tinhduongcao(pLINE[dau], pLINE[cuoi]; pLINE[i]);
if(h > hmax)
{
hmax = h;

72

index = i;
}
}
if(hmax )
for(i= dau + 1; i < cuoi, i++)
chiso[i] = FALSE;
else
{
DPSimple(PLINE, dau, index, chiso, );
DPSimple(PLINE, index, cuoi, chiso, ) ;
}
}
//Hm rt gn s lng im DouglasPeucker
int DouglasPeucker(POINT *pLINE, int n, float )
{
int

i, j;

BOOL chiso [MAX_PT];


for(i = 0; i < m; i++) //Tt c cc im c gi li
chiso[i] = TRUE;
DPSimple(pLINE, 0, n 1, chiso, );
for(i = j = 0; i < n; i ++)
if (chiso [i] ==TRUE)
pLINE[j++] = pLINE[i];
return j;
}

5.1.3. Thut ton Band width


5.1.3.1. tng
Trong thut ton Band Width, ta hnh dung c mt di bng di chuyn
t u mt ng cong dc theo ng cong sao cho ng cong nm
trong di bng cho n khi c im thuc ng cong chm vo bin ca
di bng, im ny s c gi li. Qu trnh ny c thc hin vi phn
73

cn li ca ng cong bt u t im va tm c cho n khi ht


ng cong. C th nh sau:
P3
P2

di

P1

P4
dk
P5

Hnh 5.2. n gin ha ng cong vi thut ton Band Width

Bt u bng vic xc nh im u tin trn ng cong v coi


nh l mt im cht (P1). im th ba (P3) c coi l im ng. im
gia im cht v im ng (P2) l im trung gian. Ban u khong cch
t im trung gian n on thng ni im cht v im ng c tnh
ton v kim tra. Nu khong cch tnh c ny nh hn mt ngng
cho trc th im trung gian c th b i, tin trnh tip tc vi im cht
l im cht c, im trung gian l im ng c v im ng l im k
tip sau im ng c. Trong trng hp ngc li, khong cch tnh c
ln hn ngng cho trc th im trung gian s c gi li, tin trnh
tip tc vi im cht l in trung gian, im trung gian l im ng c
v im ng l im k tip sau im ng c. Tin trnh c lp cho
n ht ng cong (Hnh 5.2 minh ha thut ton Band-Width).
Thut ton Band-Width:
Bc 1: Xc nh im u tin trn ng cong v coi nh l
mt im cht (P1). im th ba (P3) c coi l im
ng. im gia im cht v im ng (P2) l im
trung gian.
Bc 2: Tnh khong cch t im trung gian n on thng ni
hai im cht v im ng.
Bc 3: Kim tra khong cch tm c nu nh hn mt ngng
cho trc th im trung gian c th b i. Trong
trng hp ngc li im cht chuyn n im trung
gian.
Bc 4: Chu trnh c lp li th im trung gian c chuyn
n im ng v im k tip sau im ng c ch
nh lm im ng mi..
Nhn xt: Thut ton ny tng tc trong trng hp ng ng cha
nhiu im, iu c ngha l lch gia cc im trong ng thng
l nh, hay dy nt ca ng c vct ho l mnh.
74

5.1.3.2. Chng trnh


//Hm tnh ng cao t nh n on thng ni hai im dau, cuoi
float Tinhduongcao(POINT dau, POINT cuoi, POINT dinh)
{
floot h;
tnh ng cao
returm h ;
}
//Hm quy nhm nh du loi b cc im trong ng cong
void BWSimple(POINT *pLINE, int chot, int tg, BOOL *chiso,
float , int n)
{
if(Tinhduongcao(pLINE[chot], pLINE[tg+1], pLINE[tg]) )
chiso[tg] = 0;
else
chot = tg;
tg = tg + 1
if(tg < n - 1)
BWSimple (pLINE, chot, tg, chiso, , n) ;
}
//Hm rt gn s lng im BandWidth
int BandWidth(POINT *pLINE, int n, floot )
{
int

i, j;

BOOL chiso [MAX_PT];


for (i = 0; i < n; i++)
chiso[i]= TRUE; //Tt c cc im c gi li
BWSimple(pLINE, 0, 1, chiso, , n);
for(i= j= 0; i < n; i++)
if(chiso [i]== TRUE)

75

pLINE [j ++1] = pLINE [i];


return j;
}

5.1.4. Thut ton Angles


5.1.4.1. tng
Tng t nh thut ton Band Width nhng thay vic tnh ton
khong cch bi tnh gc. C th thut ton bt u vi im u ng
cong (P1) l im cht.
P3
P2

k
P4
P5

P1
Hnh 5.3. n gin ha ng cong vi thut ton Angles

im th 3 ca ng cong (P3) l im ng, im gia im cht


v im ng (P2) l im trung gian
Gc to bi im cht, trung gian, ng vi im trung gian l nh
vic tnh ton v kim tra
Nu th im trung gian c th b i trong trng hp ngc li im
cht s l im trung gian c v qu trnh lp vi im trung gian l im
ng c, im ng mi l im k tip sau im ng c. Tin trnh thc
hin cho n ht ng cong.
5.1.4.2. Chng trnh
//Hm tnh ng cao t nh n on thng ni hai im dau, cuoi
float Tinhgoc(POINT dau, POINT cuoi, POINT dinh)
{
float ;
tinhgoc (t vit)
return ;
}
//Hm quy nhm nh du loi b cc im trong ng cong
void ALSimple(POINT *pLINE,int chot,int tg,BOOL *chiso,float ,int n)

76

{
if(Tinhgoc(pLINE[chot], pLINE[tg], pLINE[tg+1]) > )
chiso[tg] = FALSE;
else
chot = tg;
tg = tg + 1;
if(tg < n - 1)
ALSimple(pLINE, chot, tg, chiso, , n);
}
//Hm rt gn s lng im Angles
int Angles(POINT *pLINE, int n, float )
{
int i, j, chiso [MAX];
for (i = 0; i < n; i++) //Tt c cc im c gi li
chiso[i]= TRUE;
ALSiple (PLINE, 0, 1 chiso, , n) ;
for (i = j = 0; i < n; i++)
if (chiso ==TRUE)
pLINE[j++]= pLINE [i];
return j;
}
* Ch :
Vi = 0 thut ton DouglasPeucker v BandWidth s b i cc im
gia thng hng. Thut ton Angles phi c = 180o b i cc im gia
thng hng.

5.2. XP X A GIC BI CC HNH C S


Cc i tng hnh hc c pht hin thng thng qua cc k thut
d bin, kt qu tm c ny l cc ng bin xc nh i tng. l,
mt dy cc im lin tip ng knh, s dng cc thut ton n gin ho
nh Douglas Peucker, Band Width, Angle v.v.. ta s thu c mt polyline
hay ni khc i l thu c mt a gic xc nh i tng du. Vn l
ta cn phi xc nh xem i tng c phi l i tng cn tch hay
77

khng? Nh ta bit mt a gic c th c hnh dng ta nh mt hnh


c s, c th c nhiu cch tip cn xp x khc nhau. Cch xp x da trn
cc c trng c bn sau:
c trng ton cc: Cc m men thng k, s o hnh hc nh chu
vi, din tch, tp ti u cc hnh ch nht ph hay ni tip a gic v.v..
c trng a phng: Cc s o c trng ca ng cong nh
gc, im li, lm, un, cc tr v.v..
Nhn dng i tng
Bt bin
Aphin

Bt bin
ng dng
ng trn
Ellipse
Hnh ch nht

Ellipse
Tam gic
T gic

Tam gic u

a gic

Hnh 5.4. S phn loi cc i tng theo bt bin

Vic xp x t ra rt c hiu qu i vi mt s hnh phng c bit


nh tam gic, ng trn, hnh ch nht, hnh vung, hnh ellipse, hnh
trn v mt a gic mu.

5.2.1 Xp x a gic theo bt bin ng dng

Hnh 5.5. Xp x a gic bi mt a gic mu

Mt a gic vi cc nh V0,..,Vm-1 c xp x vi a gic mu


U0,..,Un-1 vi o xp x nh sau:
E (V ,U ) = min

0 d m 1

d
,
n

78

Trong
d =

n 1

min

0 2 , R

area (V0 Vm1 )


, vi R l
area (U 0 U n 1 )

kR U

j =0

+ a V( j + d ) mod m

, k=

php quay quanh gc to mt gc .


Trong , d c tnh hiu qu bng cng thc sau:
n 1

n 1
n 1
1 n 1
2
2
2
d = |V( j + d ) mod m | | V( j + d ) mod m | + k |U j | 2 k | U jV( j + d ) mod m |
n j =0
j =0
j =0
j =0
2

y Uj, Vj c hiu l cc s phc ti cc nh tng ng. Khi


m >> n th phc tp tnh ton rt ln. Vi cc hnh c bit nh hnh
trn, ellipse, hnh ch nht, hnh xc nh duy nht bi tm v mt nh
(a gic u ) ta c th vn dng cc phng php n gin hn nh bnh
phng ti thiu, cc bt bin thng k v hnh hc.
nh ngha 5.1
Cho a gic Pg c cc nh U0, U1,..., Un(U0 Un) Khi m men bc
p+q c xc nh nh sau:
M pq =

y q dxdy .

Pg

Trong thc hnh tnh tch phn trn ngi ta thng s dng cng
thc Green hoc c th phn tch phn bn trong a gic thnh tng i s
ca cc tam gic c hng OUiUi+1 .
U2
U
1

f ( x , y ) x

U0

n 1

y q dxdy =

Pg

U3

sign( x y
i =0

O(0,0)

Un-

i +1

f ( x , y ) x

xi +1 yi )
y q dxdy

OU iU i + 1

Hnh 5.6. Phn tch min a gic thnh tng i s cc min tam gic

79

5.2.1.1. Xp x a gic bng ng trn


Dng phng php bnh phng ti thiu, ta c o xp x:
E(Pg,Cr)= min

a ,b ,c R

1 n 2
( xi + yi2 + axi + byi + c) 2

n i =1

Hnh 5.7. Xp x a gic bng ng trn

5.2.1.2. Xp x a gic bng ellipse


Cng nh i vi ng trn phng trnh xp x i vi ellipse c
cho bi cng thc:
E(Pg,El)=

min

a ,b ,c ,d ,eR

1 n 2
( x + ayi2 + bxi yi + cxi + dyi + e) 2
n i =1 i

Mt bin th khc ca phng php bnh phng ti thiu khi xp x


cc ng cong bc hai c a ra trong [7].
5.2.1.3. Xp x a gic bi hnh ch nht
S dng tnh cht din tch bt bin qua php quay, xp x theo din
tch nh sau: Gi 11 , 20 , 02 l cc m men bc hai ca a gic (tnh theo
din tch). Khi gc quay c tnh bi cng thc sau:
tg2 =

2 11
20 - 02 .

Gi din tch ca hnh ch nht nh nht c cc cnh song song vi


cc trc qun tnh v bao quanh a gic Pg l S.
K hiu E(Pg, Rect)= S area( Pg)
y

Hnh 5.8. Xp x a gic bng hnh ch nht

80

5.2.1.4. Xp x a gic bi a gic u n cnh


Gi M(x0,y0) l trng tm ca a gic, ly mt nh Q tu ca a
gic, xt a gic u n cnh Pg to bi nh Q vi tm l M.
K hiu E(Pg, Pg)=

area ( Pg ) area ( Pg ' )

E(Pg, En)=min E(Pg,Pg) khi Q chy khp cc nh ca a gic.

5.2.2 Xp x a gic theo bt bin aphin


Trong [7] a ra m hnh chun tc v bt bin aphin, cho php chng
ta c th chuyn bi ton xp x i tng bi bt bin aphin v bi ton
xp x mu trn cc dng chun tc. Nh vy c th a vic i snh cc
i tng vi mu bi cc bt bin ng dng, chng hn vic xp x bi
tam gic, hnh bnh hnh, ellipse tng ng vi xp x tam gic u,
hnh vung, hnh trn v.v... Th tc xp x theo bt bin aphin mt a gic
vi hnh c s c thc hin tun t nh sau:
+ Bc 0:
Phn loi bt bin aphin cc dng hnh c s
Dng hnh c s

Dng chun tc

Tam gic

Tam gic u

Hnh bnh hnh

Hnh vung

Ellipse

ng trn

+ Bc 1:
Tm dng chun tc c s Pg' tho mn iu kin:
m01 = m10 = 0

m02 = m20 = 1
m = m = 0
31
13

(php tnh tin)


(php co dn theo hai trc x, y)

(**)

+ Bc 2:
Xc nh bin i aphin T chuyn a gic thnh a gic Pg dng
chun tc (tho mn tnh cht (**)).
Xp x a gic Pg vi dng chun tc c s Pg tm c bc 1 vi
o xp x E(Pg,Pg).
+ Bc 3:
Kt lun, a gic ban u xp x T-1(Pg) vi o xp x E(Pg,Pg).
81

i vi bc 1 trong [7] a ra hai v d sau:


V d 1:
Tn ti duy nht tam gic u P1P2P3 tho mn tnh cht (**) l
P1=(0,-2),P2= ( 3, ) , P3= ( 3, ) ,

28 3
3 .

V d 2:
Tn ti hai hnh vung

P1P2 P3 P4 tho mn tnh cht (**)

Hnh vung th nht c 4 nh tng ng l (-p,-p),(-p,p), (p,3


p),(p,p), vi p= 4
4

Hnh vung th hai c 4 nh tng ng l (-p,0),(p,0), (0,-p),(0,p),


4
vi p= 3 .

5.3. BIN I HOUGH


5.3.1. Bin i Hongh cho ng thng
Bng cch no ta thu c mt s im vn t ra l cn phi
kim tra xem cc im c l ng thng hay khng
Bi ton:
Cho n im (xi; yi) i = 1, n v ngng hy kim tra n im c to
thnh ng thng hay khng?
* tng
Gi s n im nm trn cng mt ng thng v ng thng c
phng trnh
y = ax + b
V (xi, yi) i = 1, n thuc ng thng nn y1 = ax1 + b, i = 1, n
b = - xia + y1; i = 1, n
Nh vy, mi im (xi; yi) trong mt phng s tng ng vi mt s
ng thng b = - xia + yi trong mt phng tham s a, b. n im (xi; yi) i =
1, n thuc ng thng trong mt phng tng ng vi n ng thng
trong mt phng tham s a, b giao nhau ti 1 im v im giao chnh l a,
b. Chnh l h s xc nh phng trnh ca ng thng m cc im
nm vo.

82

* Phng php:
- Xy dng mng ch s [a, b] v gn gi tr 0 ban u cho tt c cc
phn t ca mng
- Vi mi (xi; yi) v a, b l ch s ca phn t mng tho mn
b = - xia + yi tng gi tr ca phn t mng tng ng ln 1
- Tm phn t mng c gi tr ln nht nu gi tr ln nht tm c so
vi s phn t ln hn hoc bng ngng cho trc th ta c th kt lun
cc im nm trn cng 1 ng thng v ng thng c phng trnh
y = ax + b trong a, b tng ng l ch s ca phn t mng c gi tr ln
nht tm c:
V d:
Cho 5 im (0, 1); (1, 3); (2, 5); (3, 5); (4, 9) v = 80%. Hy kim
tra xem 5 im cho c nm trn cng mt ng thng hay khng? Hy
cho bit phng trnh ng thng nu c?
- Lp bng ch s [a, b] v gn gi tr 0

+ (0, 1): b = 1
+ (1, 3): b = -a + 3
+ (2, 5): b = -2a + 5
+ (3, 5): b = -3a + 5
+ (4, 9): b = -4a + 9
- Tm phn t ln nht c gi tr 4
4/5 = 80%
- Kt lun: 5 im ny nm trn cng 1 ng thng
Phng trnh: y = 2x + 1

83

5.3.2. Bin i Hough cho ng thng trong ta cc


0

x.cos+y.sin=r
H

x
Hnh 5.9. ng thng Hough trong to cc

Mi im (x,y) trong mt phng c biu din bi cp (r,) trong ta


cc.
Tng t mi ng thng trong mt phng cng c th biu din bi
mt cp (r,) trong ta cc vi r l khong cch t gc ta ti ng
thng v l gc to bi trc 0X vi ng thng vung gc vi n,
hnh 5.9 biu din ng thng hough trong ta Decard.
Ngc li, mi mt cp (r,) trong to cc cng tng ng biu
dim mt ng thng trong mt phng.
Gi s M(x,y) l m im thuc ng thng c biu din bi
(r,), gi H(X,Y) l hnh chiu ca gc to O trn ng thng ta c:
X= r. cos v Y= r.sin
Mt khc, ta c: OH.HA=0
T ta c mi lin h gia (x,y) v (r,) nh sau: x*cos+y*sin=
r.
Xt n im thng hng trong ta cc c phng trnh
x*cos0+y*sin0= r0. Bin i Hough nh x n im ny thnh n ng
sin trong ta cc m cc ng ny u i qua (r0,0). Giao im (r0,0)
ca n ng sin s xc nh mt ng thng trong h ta cc. Nh
vy, nhng ng thng i qua im (x,y) s cho duy nht mt cp (r,) v
c bao nhiu ng qua (x,y) s c by nhiu cp gi tr (r,).

84

Chng 6:

NG DNG X L NH

6.1. PHT HIN GC NGHING VN BN DA VO


CHU TUYN
Gc nghing vn bn l mt bi ton kinh in trong x l nh vn
bn. Mt h thng x l nh vn bn thng phi gii quyt bi ton pht
hin gc nghing nh mt bc u tin v tt yu. Chnh v vy, cng vi
s pht trin ca x l nh ni chung v x l nh vn bn ni ring, bi
ton gc nghing vn bn cng c quan tm ngy cng nhiu v di
nhiu gc khc nhau. C rt nhiu hng tip cn cho bi ton gc
nghing vn bn t trc ti nay. Cc thut ton pht hin gc nghing
thng c xy dng cho cc h thng phn tch nh vn bn khc nhau
nn ch gii quyt cho nhng loi nh vn bn c th. C th chia ra mt s
hng tip cn c bn cho bi ton gc nghing vn bn nh sau:
Cc thut ton da vo phn tch hnh chiu (Projection Profile)
Cc thut ton da vo bin i Hough (Hough Transform)
Cc thut ton phn tch lng ging (Nearest Neighbour
Clustering)
Phng php dng cc php ton hnh thi
Da vo tnh cht mi i tng nh c duy nht mt chu tuyn ngoi
v quan nim con ngi nhn ra nghing ca vn bn da vo c ch
chim ch o trong vn bn. Mc ny cp n vic tnh ton kch
thc ch o ca cc i tng nh trong vn bn thng qua k thut tnh
biu tn xut kch thc hnh ch nht nh nht bao quanh i tng
nh. Vic xc nh gc nghing vn bn s c xc nh nh php bin
i Hough cho nhng im gia y ca hnh ch nht nh nht bao quanh
i tng nh cho cc i tng nh c kch thc ch o.

6.1.1. Tnh ton kch thc ch o ca cc i tng nh


Nh ni t cc phn trn, gc nghing c xc nh da vo bin
i Hough. y, chng ta ch p dng bin i Hough cho nhng im
gia y ca cc hnh ch nht ngoi tip cc i tng c kch thc ch
o trong nh. Nh vy, cng vic u tin cn thc hin l xc nh c
cc hnh ch nht ngoi tip cc i tng hay ni cch khc l xc nh
bin cc i tng.

85

Hnh 6.1. Cc hnh ch nht ngoi tip i tng nh

y, ta dng thut ton d bin c ci tin trong chng 2


xc nh bin cho cc i tng trong nh vn bn. Hnh ch nht ngoi
tip i tng s c xc nh ngay sau khi d c bin cho i tng
.
Mt cch trc tip ging nh mt s thut ton khc, ta c th dng
bin i Hough p dng ln y ca cc hnh ch nht ngoi tip cc i
tng ny v c lng gc nghing cho vn bn. Tuy nhin, y bin
i Hough c p dng sau khi loi bt i mt s i tng bng cc
ngng kch thc.

Hnh 6.2. V d v mt nh vn bn nghing vi nhiu loi i tng

Mc ch ca vic dng ngng l da vo thc o kch thc


phn loi i tng. Ni cch khc, dng ngng phn loi ta c th phn
bit c mt cch tng i nhng i tng l k t v i tng phi k
t. Nh bit phn bit i tng, ta s ch lm vic vi cc i tng c
86

kch thc ch o trong nh do chnh xc ca thut ton c ci


thin ng k.
Gi s ta c mt nh vn bn nghing nh hnh v trn y. R rng
y l mt nh vn bn phc tp vi nhiu i tng phi k t v s k t
ch ci trong nh trn l rt t. Mc d vy, chng ta vn cho rng nh b
nghing. Vy ta cn c vo u khi kt lun nh b nghing? Trong mt
nh vn bn, thng thng cc i tng k t chim nhiu hn nhng i
tng khc. Xut pht t quan im nhn nhn s vt ca mt ngi v c
th trn y ca nh vn bn, gi cho chng ta mt hng gii quyt bi
ton gc nghing l xc nh cc i tng ch o trong nh chnh l cc
k t, v cn c vo chng c lng gc nghing.
tng xc nh cc i tng c kch thc ch o trong nh l
dng k thut lp biu tn xut hay Histogram kch thc c lng
mt k t c tn s xut hin nhiu nht trong vn bn m ta gi l i
tng chun. Vi mi mt nh u vo, ta s xc nh mt i tng
chun ring v t ng trong chng trnh. Sau , ly i tng ny lm
chun v so snh cc i tng cn li vi n. Nhng i tng c kch
thc xp x bng kch thc ca i tng ny s c chn p dng
bin i Hough. Mt i tng c xem l xp x bng kch thc ca
i tng khc nu chnh lch kch thc gia chng b hn mt ngng
c nh ngha trc.

6.1.2. Bin i Hough v pht hin gc nghing vn bn


6.1.2.1. p dng bin i Hough trong pht hin gc nghing vn bn
tng ca vic p dng bin i Hough trong pht hin gc
nghing vn bn l dng mt mng tch lu m s im nh nm trn
mt ng thng trong khng gian nh. Mng tch lu l mt mng hai
chiu vi ch s hng ca mng cho bit gc lch ca mt ng thng
v ch s ct chnh l gi tr r khong cch t gc to ti ng thng
. Sau tnh tng s im nh nm trn nhng ng thng song song
nhau theo cc gc lch thay i. Gc nghing vn bn tng ng vi gc
c tng gi tr mng tch lu cc i.
Theo bin i Hough, mi mt ng thng trong mt phng tng
ng c biu din bi mt cp (r,). Gi s ta c mt im nh (x,y)
trong mt phng. V qua im nh ny c v s ng thng, mi ng
thng li cho mt cp (r,) nn vi mi im nh ta s xc nh c mt
s cp (r,) tho mn phng trnh Hough.
Hnh v di y minh ho cch dng bin i Hough pht hin
gc nghing vn bn. Gi s ta c mt s im nh. y l nhng im
gia y cc hnh ch nht ngoi tip cc i tng c la chn t
87

cc bc trc. y, ta thy trn mt phng c hai ng thng song


song nhau. ng thng th nht c ba im nh nn gi tr mng tch lu
bng 3. ng thng th hai c gi tr mng tch lu bng 4. Do , tng
gi tr mng tch ly cho cng gc trng hp ny bng 7.
0
Hough[][r1] = 3

Hough[][r1] = 4

x.cos+y.sin =
r1
y
x.cos+y.sin
r

x
Hnh 6.3. Bin i Hough pht hin gc nghing

6.1.2.2. Thut ton pht hin v hiu chnh gc nghing vn bn


a) X l ngoi l
Sau giai on tin x l nh ta thu c nh trung gian TempImage.
Thut ton pht hin gc nghing s lm vic vi nh trung gian ny
tm ra gc nghing cho vn bn v sau dng thut ton quay nh
quay nh ban u vi gc nghing va tm c.
Tuy nhin, mt im cn c xt n trong thut ton pht hin gc
nghing l x l nhng nh vn bn phc tp hoc cc trng hp ngoi
l. Ta s ln lt a ra cc phng n x l cho cc trng hp ny.
nh c qu t k t

Hnh 6.4. V d v mt nh nghing c t k t ch ci

88

Trng hp th nht l trong nh c qu t k t ch ci cha


xc nh c gc nghing. Cc i tng trong nh ch yu l nh hoc
nhiu, c bit cc k t nghing cc gc khc nhau do c th ring ca
nh. Hnh v di y minh ho mt nh vn bn nghing vi s k t rt
t.
V vy, ta ch a ra kt lun v gc nghing cho vn bn trong
trng hp s lng cc i tng ny phi ln hn mt ngng no .
Trong chng trnh s lng ny c chn bng 70 i tng.
Cc i tng bao nhau
Trng hp ngoi l khc l cc i tng bao nhau. y l mt cn
tr i vi nhng thut ton xc nh gc nghing khc c bit l nhng
thut ton theo phng php phn tch lng ging thn cn nh c
cp trn.
Mc d s k t trong vn bn c th rt nhiu nhng cc k t hu
ht b cha trong cc i tng khc ln hn nhiu chng hn nh nh hay
bng biu. Hnh 5.5 di y minh ha cho cho trng hp cc k t b
bao bi i tng nh. Khi , nhim v l phi nhn ra c s bao hm
gia cc i tng v tch, ly c cc i tng k t b bao bi cc i
tng
ln hn.

Hnh 6.5. V d v vn bn nghing c cc i tng bao nhau

y, ta dng mt k thut bc dn nhng i tng ln ngoi c


xc nh nhng k t trong . Mt i tng c gi l c kch thc
ngoi c c quy c l i tng c chiu rng v chiu cao ln hn
200 pixel. Nu trong qu trnh d bin ta gp mt i tng nh vy, ta s
89

cch ly n ra khi tp i tng ang xt. Cc i tng ny s c dng


n nu cui cng s i tng c chn p dng bin i Hough b
hn 70. Ta xem nh i tng ny l mt nh v tip tc duyt cc i
tng bn trong n ly ra nhng i tng k t.
b) Thut ton pht hin gc nghing vn bn da vo bin
Gi s nh u vo l nh mu (Image). Thut ton pht hin v chnh
sa gc nghing vn bn c thc hin theo cc bc chnh sau:
Bc 1: Tin x l nh mu Image c nh trung gian TempImage
Bc 2: Xc nh chu tuyn ngoi cho cc i tng:
Duyt nh t trn xung di, t tri sang phi, im nh hin ti
l (x,y):
Nu (x,y) c mu khc mu nn v cha xt Label [x][y]=0 :
- Tng gi tr nhn ln mt n v: label=label+1.
- Gi hm xc nh chu tuyn DetectAnObject vi im xut
pht (x,y), rec dng lu hnh ch nht cha i tng, hm tr v -1
nu i tng c lp, 1 nu i tng c kch thc bnh thng v 0
trong trng hp ngc li c kch thc k l.
- Nu hm chu tuyn tr v 1 :
+ Tng s i tng: Id=Id+1.
+ Lu li Rec[Id] =rec.
+ Duyt t phi sang tri, tm im cng hng c nhn bng
label v nhy ti .
- Ngc li nu hm DetectAnObject tr v 0:
+ Nu rec.Wid > 200 v rec.Hei > 200 ( kch thc qu ln)
thit lp mu nn cho cc im bin ly im (x,y+1) lm im xt
tip theo.
+ Ngc li, duyt t phi sang tri tm im cng hng u
tin c nhn bng label v nhy ti .
Nu (x,y) c mu khc mu nn v xt, Label [x][y] > 0, duyt t
phi sang tri tm im u tin cng hng c nhn bng Label [x][y] v
nhy ti .
Bc 3: Dng mng Rec[N] xc nh cc gi tr ngng trung bnh
WidAvr, HeiAvr v PrmAvr.
Bc 4: p dng bin i Hough
Vi mi phn t Rec[i] ca mng Rec:
90

Nu Rec[i].Pmr< 6*PrmAvr v Rec[i].Wid< 4*WidAvr v


Rec[i].Hei< 4*HeiAvr , p dng bin i Hough cho im gia y ca
hnh ch nht.
Bc 5: Dng mng kt qu Hough[360][Dis] c lng gc nghing
cho vn bn:
Gn gi tr cc i cc phn t ca mng Hough[360][Dis] cho max.
Gn maxtotal = 0.
Vi mi hng i ca mng
- Khi to cho tng cc gi tr ca hng: total = 0.
- Vi mi gi tr ct j, nu Hough[i][j] > max/2, tng tng
total = total+Hough[i][j].
- Nu total> maxtotal:
+ maxtotal = total.
+ Gc lch = i.
Bc 6: Quay li nh Image vi gc lch va xc nh c t
bc 5.
6.1.2.3. Thc nghim v kt qu
Chng ti ci t thut ton xut bng cng c ngn ng lp
trnh Visual C++ v th nghim nhiu vi b test a dng. Kt qu th
nghim chng minh tnh chnh xc ca thut ton v kh nng lm vic
vi nhiu loi vn bn khc nhau cng nh cc gc lch khc nhau. Kt
qu thut ton lm vic tt ngay c vi nh mu c cc i tng nh c
kch thc co cm v c lch di 15o, di y l mt s hnh nh m
thut
ton
thc
hin c.
u im ni bt ca thut ton l vic phn bit cc k t ch ci v
nhng i tng phi k t nh nhiu, i tng ha, ng thng, v.v..
do chnh xc ca thut ton tng ln. loi tr cc i tng phi
k t ny, thut ton t ng xc nh cc ngng kch thc. Ba
ngng kch thc c dng l chiu rng, chiu cao v chu vi ca mt
i tng.
Hnh 6.6 cho thy thut ton ngoi vic c th thc hin i vi nh
mu do b sung thm khu tin x l trc , cn c kh nng thc hin
vic pht hin gc nghing v tin hnh quay nh vi nhiu i tng khc
nhau, ngay c i vi nh bn l i tng m cc h thng khc
thng khng thc hin c nh MapScan v VnDOCR trong khi vic

91

quay ny l cn thit c th nhn c cc ch ca bn trong qu


trnh vct ha t ng.

92

a) Mt nh bn c t k t nghing gc v nh kt qu sau khi sa nghing

b) Mt nh vn bn nhiu mu b nghing v nh kt qu sa nghing


Hnh 6.6. Mt s loi nh mu m thut ton thc hin hiu chnh

93

6.2. PHN TCH TRANG TI LIU


Mt trong nhng vn c bn ca nhn dng cc trang vn bn ni
chung v cc trang vn bn c ln cc i tng khc nh nh, s , biu
v.v.. (Hnh 6.7) l phi phn tch c chng. Ch khi no phn tch
c chng mt cch chnh xc, mi c th tin hnh nhn dng cc thng
tin trong cc i tng mt cch chnh xc v sau qu trnh nhn dng
trang vn bn mi c tr li cu trc ca n mt cch chnh xc.

Hnh 6.7. Trang vn bn c ln nh

Mc ny cp n vic phn tch vn bn theo tip cn di ln nh


vic s dng khong cch Hausdorff gia cc i tng nh. Ban u cc
i tng nh s c tch bi chu tuyn ngoi. Cc i tng c kch
thc hnh ch nht ph nh hn mt ngng no s c nhm vi
nhau theo ln cn gn nht da vo vic s dng khong cch Hausdorff
to ra cc khi. Cc i tng nh cn li s c tip tc phn tch nh l
i vi mt trang vn bn c kch thc nh hn.

6.2.1. Quan h Q
nh ngha 5.1: [Lin kt Q]
Cho trc ngng , hai i tng nh U, V hoc c gi l
lin kt theo v k hiu Q(U,V) nu tn ti dy cc i tng nh X1,
X2,... Xn sao cho:
(i) U X1
(ii) V Xn
(iii) h(Xi, Xi+1) < i, 1i n-1
Mnh 6.1: Quan h lin kt Q l mt quan h tng ng
Chng minh:
(i) Phn x: U hoc ta c h(U,U)= 0 <
94

(ii) i xng: Gi s c Q(U,V) cn phi chng minh Q(V,U)


Tht vy, theo gi thit tn ti dy i tng nh X1, X2,..., Xn sao
cho:
UX1, VXn, h(Xi,Xi+1) < i, 1i n-1
Khi , vi dy i tng nh Y1, Y2,..., Yn m: YiXn-i+1 i, 1i n
ta c:
VY1, UYn, h(Yi,Yi+1) < i, 1i n-1.
Suy ra, Q(V,U).
(iii) Bc cu: Gi s ta c Q(U,V) v Q(V,T) ta cn chng minh
Q(U,T)
Tht vy, v Q(U,V) nn tn ti dy i tng nh X1, X2,...,Xn
sao cho:
UX1, VXn, h(Xi,Xi+1) < i, 1i n-1
Q(V,T) nn tn ti dy i tng nh Y1, Y2,...,Ym sao cho:
UY1, TTm, h(Yi,Yi+1) < i, 1i m-1
Khi , dy cc i tng nh Z1, Z2,...,Zn, Zn+1,..., Zn+m y:
ZiXi i, 1i n v Zn+iYi i, 1i m c cc tnh cht:
UZ1, TZn+m, h(Zi,Zi+1) < i, 1i n+m-1
Suy ra Q(U,T) .

6.2.2. Phn tch trang vn bn nh khong cch Hausdorff bi


quan h Q
Thng thng, vic tin hnh phn tch nh dng trang thng c
tin hnh sau khi nh c xc nh gc nghing v quay v gc 0.
Phn tch nh dng trang c th thc hin t di ln hay t trn
xung. Vi phn tch t trn xung, mt trang c chia t nhng phn
ln thnh cc phn con nh hn, v d n c th c chia thnh mt s
ct vn bn. Sau mi ct c th c chia thnh cc on, mi on li
c chia thnh cc dng vn bn... Tip cn theo hng ny c cc
phng php: S dng cc php chiu nghing, gn nhn chc nng, phn
tch khong trng trng v.v.. u im ln nht ca cc phng php phn
tch t trn xung l n dng cu trc ton b trang gip cho phn tch
nh dng c nhanh chng. y l cch tip cn hiu qu cho hu ht
cc dng trang. Tuy nhin, vi cc trang khng c cc bin tuyn tnh v
c s ln c bn trong v quanh vn bn, cc phng php ny c th

95

khng thch hp. V d, nhiu tp ch to vn bn quanh quanh mt s


gia, v th vn bn i theo nhng ng cong ca i tng trong s
ch khng theo ng thng.
Phn tch nh dng t di ln bt u vi nhng phn nh v nhm
chng vo nhng phn ln hn k tip ti khi mi khi trn trang c xc
nh. Tuy nhin khng c mt phng php tng qut no in hnh cho
mi k thut phn tch di ln. Trong [1] cc tc gi xut thut ton
phn tch trang vn bn hn hp thnh cc thnh phn pageANALYSIS
theo tip cn di ln nh vic s dng khong cch Hausdorff gia cc
i tng nh thng qua quan h Q. Ban u cc i tng nh s c
c lp bi chu tuyn ngoi (ng bin kn nh nht cha mi im nh
ca i tng nh). Cc i tng c kch thc hnh ch nht ph nh
hn mt ngng no s c nhm vi nhau theo ln cn gn nht
da vo vic s dng khong cch Hausdorff to ra cc khi, cc i
tng nh cn li s c tip tc phn tch nh l i vi mt trang vn
bn. Trong , ngng thng c xc nh theo kinh nghim ngi s
dng. Trong phn di y chng ti xut vic la chn ngng mt
cch t ng da vo biu tn xut (histogram).
fv

Hnh 6.8: nh vn bn v biu tn xut khong cch Hausdorff gia cc i


tng nh

Do thut ton phn tch trang vn bn pageANALYSIS [1] da


khong cch Hausdorff bi quan h Q l qu trnh duyt tm cc lp tng
ng theo khong cch . Cc i tng nh trong cng mt khi vn
bn c nhng c trng tng i ging nhau v kch thc v khong
cch gia chng vi cc i tng ln cn. Hn na, mt trang vn bn li
thng c mt vi dng i tng ch o. Do , ta c th la chn

96

ngng ban u thng qua vic nh gi biu tn xut khong cch


Hausdorff gia cc i tng nh (hnh 5.8).
T biu tn xut khong cch Hausdorff gia cc i tng nh
ca nh vn bn cn phn tch. Ngng c la chn trong cc gi tr
h tng ng l cc nh trong biu tn xut chnh l cc gi tr ng
vi nhiu phn t cng loi nht. Vi ngng chn ta tin hnh phn
vng theo tip cn di ln nh vic s dng khong cch Hausdorff gia
cc i tng nh thng quan quan h Q. Kt qu thu c v tp hp cc
hnh ch nht ri nhau th hin cc vng trong nh.
Vic la chn ngng ph hp nht s c tin hnh thng qua
vic nh gi s sai lch ca vn bn so vi mu. Vi mi ngng , ta s
tm c mu tng ng c lch nh nht. Ngng v vn bn mu
tng ng vi sai lch nh nht trong s cc lch s c la chn.
Nu sai s nh nht chp nhn c (nh hn mt ngng cho trc no
) th s vng ca vn bn s c xc nh tng ng vi s vng ca
vn bn mu c la chn. Khi , vn bn s c phn tch trang da
theo cc thuc tnh ca vn bn mu. Trong trng hp ngc li c th
xem vn bn khng thuc tp vn bn mu v do vy c th tin hnh b
sung vn bn ang xt vo tp mu.

6.2.3. Phn tch trang vn bn da vo mu


6.2.3.1. nh gi lch cu trc vn bn theo mu
Qu trnh phn tch trang vn bn da theo cc mu c s c
thc hin thng qua vic nh gi s sai lch ca ca vn bn so vi vn
bn mu. Vn bn mu c lch nh nht so vi vn bn cn hiu chnh
s c la chn. Nu lch nh nht tm c nm trong phm vi cho
php th c th xem vn bn cn hiu chnh thuc trong s mu c,
trng hp ngc li vn bn c xem nh l mu mi v c b sung
vo tp vn bn mu.
Vic nh gi sai lch ca vn bn so vi vn bn mu s c
tin hnh thng qua vic xy dng li ta cc vng ch nht c bn ca
mu v nh gi lch ca vng so vi li. lch ca vn bn so vi
mu s c nh gi da trn s tng ng ca c vn bn v mu so
vi li tng ng.
Vic xy dng li ta cc vng hnh ch nht tm c trong vn
bn thng qua vic chn ngng da vo biu tn xut hay cc vng
vn bn ch nht trong mu. Li l tp cc to ngang dc, hnh 3 th
hin v d minh ho vic xy dng li t tp cc hnh ch nht.

97

Hnh 6.9: Xy dng li ta cc hnh ch nht

lch ca mt vng ck so vi li MGrid(i,j) c tnh bi


cng thc:

1 Nu c k M Grid (i, j)
Intersec( c k ,M Grid (i,j) ) =
0 Nu ngc li
v lch ca mt vng ck so vi li MGrid c xc nh bi tng
lch ca vng so vi cc ca ca li MGrid:
nh

nv

Segments(c k , M Grid ) = Intersec(c k , M Grid (i, j))


i =1 j=1

Gi tp hp cc vng nm trong li m c lnh khc 0 l C M


ta c:

Grid

C M Grid = {c k Segments(ck ,M Grid ) > 0}

Khi , lnh ca vn bn so vi li (i,j) c xc nh bi


cng thc:

N MGrid (i, j) =

(
)
Intersec
c
,
M
(
i
,
j
)

k
Grid

(
)
Segments
c
,
M
c k C M Grid
k
Grid

v ca vn bn so vi li c xc nh l tng lch ca vn
bn so vi tng ca li l:
nh

M Grid

nv

= NM (i, j)
i =1 j=1

Grid

98

lch ca vn bn so vi mu c nh gi bng t s gia tng


lch ca cc vng trong vn bn v mu i vi tng ca li kt hp
gia hai li c xy dng t cc vng ca vn bn v mu trn tng s
vng ca vn bn v mu:
nh

S=

nv

N
i =1 j=1

'

MG Grid

(i, j) NMG (i, j)


Grid

n c + n 'c

Trong :
MG - l li kt hp t hai li c xy dng t cc hnh ch nht
vng ca vn bn v mu
Grid

n c , n ,c - l s vng ca vn bn v s vng ca mu

'

MG Grid

(i, j), NMG

- l lnh ca vn bn v mu so vi li (i,j)
Grid

*V d minh ho nh gi lch vn bn so vi mu
Cu trc vn bn, cu trc mu v li ta hnh ch nht xy dng
tng ng

Li ta hnh ch nht tng ng

99

Li xy dng kt hp t cc li ta vng ch nht vn bn v mu

Khi , gi tr lch ca vn bn v mu so vi cc li c tnh


theo cng thc

M Grid

(i, j)

l:

1/8

1/8

1/4

1/4

1/8

1/8

1/4

1/4

1/8

1/8

1/4

1/4

1/8

1/8

1/4

1/4

1/8

1/8

1/8

1/8

1/8

1/8

1/8

1/8

1/2

1/3

1/3

1/3

1/2

v do , lch ca vn bn so vi mu c tnh theo cng thc l:

S=

4 *1 / 4 + 1 / 2 + 1 / 6 + 2 / 3 5
=
= 0,3125
4+4
16

6.2.3.2. Thut ton phn tch trang vn bn da vo mu


Di y, chng ti trnh by thut ton phn tch trang vn bn
pageANALYSIS* da vo mu nh k thut phn tch trang vn bn
pageANALYSIS [1] theo tip cn di ln nh s dng quan h Q v vic
nh gi lch cu trc vn bn theo mu mc trn.
Vo: nh vn bn I cn phn tch,
Tp cu trc vn bn mu tempStructs
Ngng Tolerance
Ra:

Cu trc trang vn bn cu phn tch pageStruct

Phng php: Thut ton gm cc bc c bn sau


 Tnh biu tn xut theo khong cch Hausdorff

100

+ Tch cc i tng da vo chu tuyn ngoi


+ Tnh khong cch Hausdorff gia cc i tng
+ Xy dng biu tn xut theo khong cch tnh
 Vi biu tn xut xy dng la chn ngng
 Phn tch trang vn bn theo thut ton pageANALYSIS theo
quan h Q vi ngng la chn da vo biu tn xut
bc 2
 nh gi lch ca cu trc trang vn bn va c phn tch
bc 3 vi cc cu trc trang vn bn mu v tm ra cu trc trang
tng ng c lch nh nht.
 Lp li bc 2 n bc 4 chng no cn la chn c theo
cc nh biu tn xut theo khong cch Hausdorff gia cc
i
tng nh.
 Chn ra mu c lch nh nht trong s cc lch nh nht
tm c trong bc 4 ng vi cc la chn.
 Kim tra nu lch nh nht tm c trong bc 6 nh hn
ngng Tolerance th c th kt lun vn bn cn phn tch c
dng l mu c lch nh nht tng ng v cu trc trang phn
tch thu c cu trc tng ng thu c bc 2 sau bc
phn tch theo thut ton pageANALYSIS theo quan h Q.
Trong trng hp ngc li c th kt lun vn bn khng nm
trong cc mu vn bn cho trc, nng cao cht lng cho
bc sau c th b sung thm vn bn vi cc cu trc tm c
tng ng vo tp mu cu trc vn bn.
Mnh 6.2: Thut ton phn tch trang vn bn pageANALYSIS* da
vo mu l dng v cho kt qu ng.
Chng minh:
V s im ca chu tuyn v i tng xc nh bi chu tuyn l hu
hn nn bc xt duyt chu tuyn l dng do bc c lp cc i tng
s dng. S cc i tng thu c l hu hn nn vic tnh biu tn
xut theo khong cch Hausdorff l dng. Do , cc bc la chn
ngng da vo cc nh ca biu tn xut l hu hn.
V thut ton phn tch trang vn bn pageANALYSIS* da vo mu
nh k thut phn tch trang vn bn pageANALYSIS theo tip cn di
ln nh s dng quan h Q v vic nh gi lch cu trc vn bn theo
mu. Tnh ng n ca thut ton pageANALYSIS c ch ra trong
101

[1] v t mc 6.2.3.1 ta thy tnh ng n ca vic nh gi lch vn


bn theo mu dn n tnh ng n ca thut ton pageANALYSIS*.
Tng hp cc bc trn ta c thut ton pageANALYSIS* l dng
v cho kt qu ng .
Cc bc tin hnh phn phn vng v i snh mu

Hnh 6.10: Cc bc tin hnh phn vng v i snh mu

6.3. CT CH IN DNH DA VO CHU TUYN


Mi mt t hay mt cm ch dnh c th c xem nh mt i
tng nh. Mc ny xut mt thut ton ct ch Vit in dnh nh vic
s dng tnh cht ca chu tuyn v v tr tng h gia chng. Vic s
dng tnh cht ca chu tuyn, v tr tng h gia chng v mt s tnh
cht khc lin quan trong vic ct ch dnh, qua thc nghim th hin hiu
qu hn i vi lp cc ch Vit in dnh c p dng cc phng
php truyn thng.

6.3.1. t vn
Mt trong nhng im mu cht ca vn nhn dng ch in ni
chung v ch Vit in ni ring l phi c lp c chng. Vic c lp cc
ch c tin hnh sau khi tin hnh phn tch trang tch cc khi, t
cc khi tch ra cc dng, t cc dng tch ra cc t v cc t tch ra cc
k t.
102

Phng php chiu ngang VPP (Vertical Project Profile) hay biu
tn sut ngang VH (Vertical Histogram) l phng php kh ph bin
c p dng trong cc h OCR (Optical Character Recognition). Nhng
phng php ny thng b hn ch khi cc k t b dnh (touch) hay b
chn (overlap) [35,36,54], c bit i vi ch Vit vi cc tng m v du
iu ny thng hay xy ra.

Hnh 6.11. V d v ch Vit in b dnh

Hnh 6.11 l mt s v d v k t ch Vit in b dnh v b chn m


phn mm VnDOCR(*) phin bn 2.0 s dng php ct theo VPP nn php
ct khng chnh xc. i vi nhng ch cht lng xu nh th, nhng
ch dnh c din tch tip xc ln hn din tch tip xc ca cc phn ca
mt ch.
Vic khc phc nhc im ny ca cc phng php VPP v VH
c nhiu tc gi gii quyt cho n nhng thi im hin nay th hin
tnh thi s ca vn trong c vic s dng chu tuyn kt hp vi cc
phng php cho ch dnh v c bit l ch vit tay.
Mt khc, trong cc nghin cu trc cc tc gi ch ra rng mi
mt i tng nh c gii hn bi duy nht mt chu tuyn ngoi v cc
chu tuyn trong. Trong phm vi nghin cu ny mi mt t hay mt cm

( )

* Phn mm ot gii nht Sng to khoa hc k thut Vit Nam (gii VIFOTECH trc y) nm
1999.

103

ch dnh l mt thnh phn lin thng trong nh v do n l mt i


tng nh.
Xut pht t hon cnh , mc ny trnh by mt k thut ct ch
Vit in dnh, nh vic s dng cc tnh cht ca chu tuyn v v tr tng
h gia chng, vi i tng trc tip l cc ch in dnh m phn mm
VnDOCR2.0 sau khi s dng phng php ct ch VPP khng ct c.

6.3.2. Mt s khi nim c bn


Cp im tht: L cp im nm trn chu tuyn ngoi ca mt t hay
mt cm ch dnh m khong cch gia chng nh hn nhiu so vi
khong cch dc theo chu tuyn gia chng.
Khong cch dc theo chu tuyn ngoi gia hai im pi v pj c nh
ngha l: distB(pi, pj) l khong cch nh nht t pi n pj dc theo chu tuyn.
Gi tr wij cng c th c tnh ton bi hm nng lng bin
W: B(E) R dc theo bin B(E) ca E. Ta c: distB(pi,pj)= min(|W(pi)W(pj)}, W-|W(pi)-W(pj)|)
y, W tng nng lng bin dc theo B(E).
Ngng tht (L): L t s khong cch ti a gia 2 im dc theo
chu tuyn v khong cch gia chng trong cp im thuc chu tuyn ang
xt c tm coi l cp im tht.
Ngng qut (S): L s im cch im ang xt v 2 pha trn
ng i ang xt. Th d: S= 24, v im qut ti im A th ngng qut
c m t nh hnh di y:
2S=48

A
End

Star
t

Hnh 6.12. S im cch v hai pha ti im qut A

Mt ct (M): L khong cch tng i gia 2 cp im tht lin


nhau v 2 pha. Th d M = 5 th tt c cc im ct lin k nhau s cch
nhau 1 khong ti thiu l 5 im nh. Mt ct rt quan trng. Tht vy,
trong mt t c th c nhiu im tht v cc im tht c th rt gn
nhau (cch nhau khong 1,2,3,5,6 pixel) iu ny lm cho nt ct s khng
mnh v vy cn phi c khong cch gia cc im tht. V d: Khi M = 0
th chng trnh s nhn ra 1 lot cc im tht v a ra cc quyt nh
ct nh trong Hnh 5.13.b. Khi M= 5 th chng trnh a ra quyt nh ct
nh trong Hnh 5.13.c

104

Tp

ng
M=0

a)

M=5

c)

b)

Hnh 5.13. V d v ng ct v mt ct

6.3.3. Thut ton ct ch in dnh da vo chu tuyn


6.3.3.1. Phn tch bi ton
tng chnh ca phn ny v vic ct ch in dnh l gn nh, xa
ng, da vo cc c im ca cc cp im tht ra quyt nh ct.
Vi mi mt t hay mt cm ch dnh, trc tin ta tin hnh tch ra
cc chu tuyn, sau da vo chu tuyn ngoi tm ra cc cp im tht.
Mi chu tuyn u tn ti mt chu tuyn i ngu. Trong cc nghin cu
trc cc tc gi ch ra rng mi i tng nh, y l mt t hay mt
cm ch dnh, tn ti duy nht mt chu tuyn ngoi.
Na chu tuyn trn

Na chu tuyn di
Ch trc khi d bin Ch sau khi d bin
Qu trnh tm cp im tht
im ang xt
Chu tuyn trong
Chu tuyn ngoi
im phn na trn v na di
chu tuyn ngoi
Hnh 6.14. Qu trnh tm chu tuyn v cp im xt duyt

Xut pht t t tng trn, vi mi mt t hay cm ch dnh ban u


s c tin hnh d bin tm ra cc chu tuyn v tnh cht tng ng,
cc thng tin v chu tuyn ngoi v chu tuyn trong tm c cng cc
thng tin v ngng qut, ngng tht, mt qut c lu li.
Qu trnh tm cc cp im tht ca i tng bt u t vic xt
duyt cc im thuc chu tuyn ngoi. Cp im xt duyt c xc nh
bi mt im nm na phn trn chu tuyn v im cn li nm phn na
di chu tuyn ngoi (Hnh 6.14). Vic phn loi na trn v na di chu
tuyn xc nh bi im bn tri nht v im bn phi nht ca i tng.
105

Vi mi im xt duyt nm na trn chu tuyn ngoi ta tm mt im


tng ng nm na di chu tuyn c khong cch nh nht n im
ang xt v tha mn ngng qut (S). iu ny nhm trnh vic xt
nhng im bin lin st vi im ang xt dc theo chu tuyn.
Nu khong cch t im ang xt n im di chu tuyn tm c
c t s so vi khong cch hai im ny tnh dc theo chu tuyn nh hn
ngng (L) th cp im ang xt c xem l cp im tht v c lu
tr li.
Tip theo, cc cp im tht tm c s c kim tra xem c tha
mn iu kin l cp im ct hay khng? hay ni cch khc ng ni
gia 2 im c l ng phn ranh gii ca cc ch dnh hay khng?
Trc ht, v tr ca tng cp im tht s c xt duyt, nu lch
honh ca chng qu xa hay qu gn (nhm trnh trng hp ct
ngang) th cp im s b loi. Trong trng hp ngc li, cp im
bin (k hiu l Db) s c truyn theo li gi hm FindCutPoint(...).
Hm FindCutPoint(...) s thc hin tm m s im thuc na di ca
chu tuyn ngoi c honh gn vi honh ca im thuc na trn
chu tuyn ngoi trong cp im ang xt (k hiu s im bin tm c l
B). Nu s im B tm c > 1 th hm FindCutPoint() tr v gi tr
FALSE, do cp im tht Db s b loi khi qu trnh xt duyt sau .
Ngc li, hm FindCutPoint() tnh cao l1 ca 2 im bin
trong Db, v tnh cao l2 ca im chun trong Db vi im B va tm
c. Nu l2-ll>ll th hm FindCutPoint(...) cng s tr v gi tr FALSE.
Ngc li, cp im Db s c kim tra xem c gn vi cnh tri v
cnh phi ca hnh ch nht bao quanh chu tuyn ngoi ang xt hay
khng. Nu chng qu gn th hm FindCutPoint(..) tr v gi tr
FALSE, ngc li hm FindCutPoint(..) tr v gi tr TRUE. Tip na,
hm FindCutPoint() s dng n mt M nhm xem xt khong
cch tng i gia cc cp im tht theo honh . Nu chng ln hn
iu kin mt ct (M) hm FindCutPoint() tr v gi tr TRUE. Do
c im ca ch Vit l cc ch c ru u c ru nm v bn phi nn
th t u tin i vi mt ct l t phi sang tri trnh trng hp
khi ct cc ch v.v.. li nt cho ch vit sau.

Tng s P 1
Li

Khng kim tra


l2-ll>ll

Khng kim tra s tng h


vi hnh ch nht bao quanh
chu tuyn ngoi vi Db

Li

Hnh 6.15. Mt s hnh nh minh ho v cc iu kin trn

106

Cp im ny c gi l cp im ct. tng chnh xc cho


qu trnh ct, honh ca 2 im trong cp im tht c ly trung bnh,
sau , honh mi ny s hp vi tung ca im chun trong cp
im tht hnh thnh ln mt im mi (gi l im ct tm thi) v n
c lu gi nhm phc v cho cc bc tip theo trong qu trnh ct ch.
Cui cng, sau khi xc nh c tp im ct tm thi trong tp
cc cp im bin gn nhau, hm VerifyCutPoint() s c gi nhm
thm tra li da theo qu trnh phn tch rng ca k t trong t v v tr
tng h gia chu tuyn trong v chu tuyn ngoi trn c s phn tch cc
mu c bn nh s dng cc quy tc, cc du hiu nh:
l: S chu trnh (loops)
j: S im khp (junction points)
e: S im ngot (turning points)
f: S im kt thc (end points)
t: Hng (trn, di, tri, phi)
biu din cc k t, t tm ra im ct ph hp, chng hn cc
im ct thng c gii hn bi trc v sau chu tuyn trong ca
i tng (Hnh 6.16).

c) Cc cp im ct sau khi
tnh ti v tr tng h ca
chu tuyn trong
Hnh 6.16. Thc hin VerifyCutPoint c tnh n v tr tng h ca
chu tuyn trong

a) Cm ch dnh

b) Cc cp im tht
tm c

6.3.3.2. Thut ton CutCHARACTER ct ch in dnh da vo


chu tuyn
Ban u cc chu tuyn v cc tnh cht tng ng ca chu tuyn s
c pht hin. Bc tip theo l da vo na chu tuyn ngoi trn v na
chu tuyn ngoi di ca cm ch dnh tm ra cc cp im tht theo
iu kin v cc cp im tht. Cc cp im tht s c chnh xc ha
nh cc thng tin v im cng honh , mt ct, rng ca ch v.v..
v cui cng l quyt nh cp im tht l cp im ct nh s dng cc
quy tc, du hiu nh: S chu trnh (loops), s im khp (junction
points), s im ngot (turning points), s im kt thc (end points),
hng (trn, di, tri, phi) v v tr tng h ca chu tuyn trong.

107

Thut ton CutCHARACTER tm cp im ct da vo chu tuyn


(theo tnh lin thng) nn s khc phc c cc li ct ch b chn
(overlap) ca thut ton ct ch VPP hay VH.
Do cc cp im tht c tm nm na trn v na di ca chu
tuyn ngoi ca cm t, ch dnh cn tch, nn thut ton
CutCHARACTER c kh nng ct c cc ch dnh khng theo chiu
thng ng (ct xin) v do m ra kh nng ng dng cho vic ct ch
vit tay.
Chng ti p dng k thut ct ch dnh nh vic s dng tnh cht
ca chu tuyn v v tr tng h gia chng i vi lp cc k t m phn
mm VnDOCR 2.0 sau khi s dng phng php Vertical Project Profile
(VPP) hay Vertical Histogram (VH) l phng php kh ph bin c p
dng trong cc h OCR (Optical Character Recognition).
Trong s gn 90 cm t m VnDOCR khng ct c, chng ti
cho p dng k thut ct ch ny v ct c hn 80 cm ch dnh.
iu m ra kh nng tch hp ca k thut vi cc phng php VPP
v
VH
truyn thng.
Cc cm ch dnh m thut ton ct c tng ng vi cc dng
phng ch kiu khng chn v c chn Arial, Avant, Times, Courier,... vi
kch thc ca cc k t t 8 n 72 im v cc thuc tnh nh bnh
thng, m, nghing, hay kt hp m-nghing.

6.4. NHN DNG CH VIT


C s nhn dng k t l phn bit v phn tch cc mu c bn
biu din cc k t. Cc on cung ca cc k t c c trng bi di
v cong, cc on thng c k hiu bi hng, u v cui im ca
chng biu din cc k t (xem [1,3,25,44,60,61]). V cc tham s ny
khng th dng mt cch c hiu qu tng qut ha cu trc ch.
Phng php chung c dng cho vic nhn dng k t c xt nh
sau:
Cho tp hp ={A,B,X,Y,Z}. Bi ton t ra l phn hoch thnh
cc tp con i , i=1,,26, sao cho:
26

ij=, i,j =1,,26, ij v

i =1

Bng cch s dng mt lot cc quy tc, cc du hiu nh:


l : S chu trnh (loops)
j: S im khp (junction points)
108

e: S im ngot (turning points)


f: S im kt thc (end points)
t: Hng (trn, di, tri, phi)
Ta phn hoch tp i tng cho thnh cc tp con. p dng tip
cc quy tc, du hiu ny, phn tip cc tp con thnh cc tp nh hn.
Th d vi tp cho, dng quy tc e (s im ngot) ta phn thnh 3
tp nh:
1= {A,D,O,P,Q,R}, 2= {B}, 3= {C,E,F,..} tng ng vi s im
ngot khc nhau.
Nu cha tin cy, ta dng thm hng t phn tip. Th d,
dng thm t cho tp 1 ta thu c 5 tp nh:
11= {A,R}, 12= {D}, 13= {O}, 14= {Q}, 15= {P}.
Nu cc tp thu c cha phi l n nht, ta p dng thm cc quy
tc khc nh j lm mn n. Vi tp 11, p dng quy tc j ta chia n
thnh 2 tp {A} v {R} v ch A c 2 im khp (chc 3) m ch R ch c
mt. Cui cng, ta c mt phn hoch khng gian theo yu cu v mi k
t c th biu din bi Ki , trong Ki l xu cc s nguyn, K l xu cc
k t j, l,e v t, mi k t nhn gi tr bng s lng ca chng.

6.5. TCH CC I TNG HNH HC TRONG PHIU


IU TRA DNG DU
6.5.1. Gii thiu
C th thy r mt phiu iu tra khng n thun ch c cc vng
cha i tng hnh hc, m cn c vng cha k t, vng nh v.v.. Hn
na, bn thn trong vng cha i tng hnh hc li c th c nhiu loi
i tng, vi cc c tnh v nh hng ngang dc khc nhau (Hnh
5.16). Chnh v vy giai on tch tng i tng ra khi vng kh quan
trng nh hng ti cht lng ton b h thng nhn dng. Khi c lp
ng mt i tng ra khi tng th vng th khi mi c th tin hnh
tch du cha trong n mt cch chnh xc.
tin hnh nhn dng cc phiu iu tra v kt ni cc phiu iu
tra thnh mt c s d liu, cn nh v chnh xc cc v tr ca i tng
( du). C 2 pha cn thit: Hiu chnh cc v tr ca phiu iu tra trng
vi phiu mu v tch cc trong phiu mu chnh xc. gii quyt bi
ton u tin c th hiu chnh gc lch bng bin i Hough, php chiu
nghing v ni tm cc ca cc ch gn nhau. Sau dng biu tn sut

109

v phng php bnh phng ti thiu hiu chnh l. Bi ton th 2 c


th s dng chu tuyn trong ca i tng hnh hc.
PHIU IU TRA X HI
(x11,y11)

Vng
cha
vn bn

(x12,y12)
(x21,y21)

i tng
hnh hc
nhdu

(x22,y22)

Hnh 6.17. Hnh nh mt phiu iu tra

Mt phng php tch i tng l dng lc sng


(Histogram). Phng php ny i hi cc i tng trn mt dng v cc
dng cha cc hnh phi tch ri nhau mt khong ln. iu ny to
iu kin cho vic tm ra dng phn cch gia cc dng hnh v gia cc
hnh trn cng mt dng. Song trn thc t vic tm ng phn cch gia
chng theo ngha thng thng l rt kh do hnh nho hai hnh c th
dnh li vi nhau bi nhiu. Hn na, chnh mt s dng mu du iu tra
li c thit k dnh lin nhau ging nh biu bng (Hnh 6.17). Mc ny
trnh by phng php tch cc i tng hnh hc mm do hn bng
vic pht hin cc i tng hnh hc mt cch t ng nh s dng chu
tuyn trong v mt s kiu xp x a gic bi cc hnh c s.

6.5.2. Tch cc i tng nh s dng chu tuyn


Mt trong nhng bc c bn ca vic tch cc i tng hnh hc l
phi xc nh c chng. Mnh 6.3 di y cho ta iu kin cn
xc nh i tng cn tch.
Mnh 6.3
Tn ti mt chu tuyn trong bn trong cc i tng hnh hc dng
du (dng nh du).
Chng minh:
Do c tnh ca cc i tng hnh hc dng du l ni ngi ta
nh du vo trong do tn ti vng trng(vng nh du) bn trong

110

i tng hnh hc dng du. Theo nh ngha chu tuyn trong cc i


tng ny u tn ti chu tuyn trong .
Do bn cht ca cng vic nhn dng du l ch quan tm n i
tng c c nh du hay khng (bn trong). Hn na, do cu trc ca
phiu iu tra rt c th nhiu i tng cn nhn dng li c b tr k
lin nhau (Hnh 6.17), do ta ch cn quan tm n chu tuyn trong ca
i tng, chu tuyn xc nh i tng du.
Chu tuyn trong xc nh i tng tm c l mt dy cc im lin
tip ng kn. S dng cc thut ton n gin ho nh Douglas Peucker,
Band Width, Angle v.v.. ta s thu c mt polyline hay ni khc i l thu
c mt a gic xc nh i tng du. Vn l ta cn phi xc nh
xem i tng c phi l i tng cn tch hay khng? Nh ta bit
mt a gic c th c hnh dng ta nh mt hnh c s, c th c nhiu
cch tip cn xp x khc nhau. Cch xp x da trn cc c trng c bn
sau:
c trng ton cc: Cc m men thng k, s o hnh hc nh chu
vi, din tch, tp ti u cc hnh ch nht ph hay ni tip a gic v.v..
c trng a phng: Cc s o c trng ca ng cong nh
gc, im li, lm, un, cc tr v.v..
Nhn dng i tng
Bt bin
ng dng

Bt bin

ng trn
Ellipse
Hnh ch nht
Tam gic u

Ellipse
Tam gic
T gic
a gic

Aphin

Hnh 6.18. S phn loi cc i tng theo bt bin

Da trn cc cch tip cn c a ra trong cc ti liu chng ti la


chn tip cn vi cc c trng ton cc v a ra s xp x theo cc
bt bin ng dng v bt bin aphin. Vic xp x t ra rt c hiu qu i
vi mt s hnh phng c bit nh tam gic, ng trn, hnh ch nht,
hnh vung, hnh ellipse, hnh trn v mt a gic mu.

6.6. TCH BNG DA TRN TP CC HNH CH NHT


RI RC
Mt trong nhng vn c bn ca nhn dng cc trang vn bn ni
chung v cc trang vn bn dng bng ni ring l phi phn tch c
chng. i vi cc trang vn bn thng thng th phi hiu phm vi, cu

111

trc ca cc khi vn bn. Trong cc trang hoc khi vn bn dng bng


th phi hiu v phn tch c cc cha trong bng. V ch khi no phn
tch c bng mt cch chnh xc th khi mi c th tin hnh nhn
dng cc thng tin trong cc trong n mt cch chnh xc v cng ch c
phn tch c bng mt cch chnh xc th sau qu trnh nhn dng cc
mi c tr li cu trc ca n mt cch chnh xc.

Hnh 6.19. Khi vn bn dng bng

Trong mc ny chng ti a ra cch phn tch bng theo tip cn t


di ln. Ban u cc trong bng s c pht hin nh k thut tch i
tng hnh hc vi dng i tng l hnh ch nht. Da trn cc hnh ch
nht tm c, chng ti xy dng li ta hnh ch nht. Sau tin hnh
hiu chnh li da trn khong cch ngng cho trc. T tp li sa
tin hnh hiu chnh li tp hnh ch nht. Da vo tp hnh ch nht v
li c th pht hin ra cc thiu. Cc tip cn ny c th phn tch v
hiu chnh i vi cc bng c cc c ghp (merge) vi nhau v c
nhng bng c ng nt khng . Bn cnh , chng ti cng a ra
cc nh gi nh th no l tp hnh ch nht c th chuyn i thnh
bng. Vi vic nh gi nh vy c th dn ti vic nhn dng i tng
bng
mt
cch
t ng.

6.6.1. Phn tch bi ton


phn tch c bng chng ti thc hin phn tch t di ln.
u tin, tin hnh tch ra cc chu tuyn sau da vo chu tuyn trong
nhn ra cc hnh ch nht. Chu tuyn l dy lin tip cc im bin ca
nh. Mi chu tuyn u tn ti mt chu tuyn i ngu. Nu chu tuyn c
di nh hn chu tuyn i ngu th ta gi n l chu tuyn bn trong.
Trong trng hp ngc li th l chu tuyn ngoi. T cc chu tuyn
trong tin hnh nhn dng tm ra tp cc hnh ch nht.
Qu trnh xy dng bng c tin hnh t tp cc hnh ch nht tch
c t nh. Tp cc hnh ch nht l tp lin thng hoc c la chn
112

trong mt hnh ch nht. Da vo tp cc hnh ch nht chng ti xy


dng c cc li ta cc hnh ch nht (li l tp cc to ngang
dc).

a)

b)

c)

d)

e)
f)
a) Tp hnh ch nht ban u, b) Dng li datrn tp cc hnh ch nht,
c) Hiu chnh li, d) Hiu chnh bng da trn li, e) Xc nh khuyt thiu
f) Sau khi b sung thm .
Hnh 6.20. Qu trnh hiu chnh bng t tp hnh ch nht

Bc tip theo l tin hnh hiu chnh tp li sao cho bt c hai to


ngang hoc dc khng qu gn nhau. Da vo li hiu chnh c th
hiu chnh tp hnh ch nht sao cho tt c cc nh ca tp cc hnh ch
nht nm trn li, cch hiu chnh c tin hnh cho tng hnh ch nht.
Vic hiu chnh cc hnh ch nht nm trn li s cho php ta pht hin
v b sung nhng hnh ch nht cn khuyt.
Vic nh gi kh nng tch bng c thc hin nh sau: Tnh t s
gia s li c ph bi cc hnh ch nht va c hiu chnh vi
tng s li c to ra. Nu t s ny ln hn ngng cho trc th
vic chuyn i bng c coi nh thnh cng.
Ta
li

Trong,
ngoi
im

Ri nhau,
Ph nhau,
K

Hnh
ch
nht

Li

Ph

L
Hiu
chnh
Bng

113

Hnh 6.21. Quan h gia im, hnh ch nht, li, bng

thc hin vic chuyn i t tp cc hnh ch nht thnh bng


chng ta cn xc nh cc mi quan h ni ti trong cc hnh nh tp cc
im to ra mt nh, tp cc hnh vung, li v bng da trn li.
Thut ton xc nh v hiu chnh i tng bng
Ban u, cc trong bng s c pht hin nh k thut tch i
tng hnh hc. vi dng i tng l hnh ch nht. Da trn cc hnh
ch nht tm c, xy dng li ta hnh ch nht, sau tin hnh hiu
chnh li da trn khong cch ngng cho trc. T tp li sa tin
hnh hiu chnh li tp hnh ch nht. Da vo tp hnh ch nht v li
c th pht hin ra cc thiu. Trn c s nh gi nh th no l tp
hnh ch nht c th chuyn i thnh bng.
Vi vic nh gi nh vy c th dn ti vic nhn dng i tng
bng mt cch t ng. Qua thc nghim chng ti thy cch tip cn ny
c th phn tch v hiu chnh i vi cc bng c cc c ni (merge)
vi nhau v c nhng bng c ng nt khng .

6.7. PHT HIN I TNG CHUYN NG


Hng tip cn ph bin pht hin i tng chuyn ng l so
snh khung hnh hin ti vi khung hnh lin trc. K thut ny rt tt
trong vic nn video khi m chng ta ch cn nh gi s thay i v ch
cn ghi li nhng thay i, m khng cn phi ghi li ton b khung hnh
[5,6]. Nhng k thut ny cha c tt cho cc ng dng pht hin i
tng chuyn ng. Di y, chng ta s xem xt trng hp pht hin
i tng chuyn ng da trn hng tip cn tr khung hnh hin ti vi
khung hnh lin trc.

6.7.1. Pht hin i tng chuyn ng da theo hng tip cn


tr khung hnh lin k
Gi s, chng ta c tp nh ng video nh dng avi, vi cc thng
s thuc tnh nh Hnh 6.22.
Cc khung hnh c ly t file video c dng RGB 24 bit, v c
chuyn sang nh 256 cp xm. Chng ta gi khung hnh hin thi l Ic,
khung hnh lin trc Ip. Khung hnh Igc, Igp cng l nh xm 256 mu,
c chuyn nh sau:
//nh hin thi
114

ColorIc=(Ic(i,j).Red + Ic(i,j).Green + Ic(i,j).Blue)/3;


Igc(i,j).Blue= ColorIc;
Igc(i,j).Green= ColorIc;
Igc(i,j).Red= ColorIc;
//nh lin trc
ColorIp=(Ic(i,j).Red + Ic(i,j).Green + Ic(i,j).Blue)/3;
Igp(i,j).Red= ColorIp;
Igp(i,j).Green= ColorIp;
Igp(i,j).Blue= ColorIp;

Hnh 6.22. Thuc tnh ca file video dng avi

Tip theo, Igc, Igp c tr theo tng im nh, v c so snh vi


ngng. Nu gi tr tuyt i nh hn gi tr ngng th coi l im ging
nhau, ngc li coi l khc nhau. Tc l, ti v tr i,j:
if(abs(ColorIp- ColorIc)<lThreshold) //ging nhau
{
Iwb(i,j).Red=0;
Iwb(i,j).Green=0;
Iwb(i,j).Blue=0;
} else //khc nhau
{
Iwb(i,j).Red=255;
115

Iwb(i,j).Green=255;
Iwb(i,j).Blue=255;
}
Iwb l nh en trng th hin vng khc nhau gia 2 khung hnh,
nhng im khc nhau s c mu trng, ngc li c mu en. Di y l
mt s hnh minh ha ca k thut tr nh lin k vi ngng c t l
20.

a) nh khung hnh lin trc Ip

b) nh khung hnh hin thi Ic


Hnh 6.23. nh khung hnh lin trc
v hin thi c sai khc t.
a) nh khung hnh lin trc, b) nh
khung hnh hin thi, c) nh en trng
dng k thut tr nh lin k, vi ngng
l 20.

c) nh en trng Iwb

a) nh khung hnh lin trc Ip

b) nh khung hnh hin thi Ic

116

Hnh 6.24. nh khung hnh lin trc


v hin thi c sai khc ng k.
a) nh lin trc, b) nh hin thi, c) nh
en trng dng k thut tr nh lin k, vi
ngng l 20.

c) nh en trng Iwb

a) nh khung hnh lin trc Ip

b) nh khung hnh hin thi Ic


Hnh 6.25. a) nh lin trc, b) nh
lin sau, c) nh xp chng b) ln a) im
khc nhau s c mu .

c) nh xp chng

Qua Hnh 6.23, Hnh 6.24 v Hnh 6.25, chng ta nhn thy: vi
nhng khung hnh sai khc nhau t s lm cho nh Iwb c mu en (Ic, Ip
c ging nhau ln), cn vi nhng khung hnh c khc nhau ng
k, th ngoi nhng i tng chuyn ng, cn c nhiu (do s tng
phn, thi tit...). V vy, vi k thut tr khung hnh lin k c th lm
cho qu trnh bm i tng chuyn ng b mt i (v c th c 2 khung
hnh c khc nhau khng ng k). Thc nghim cho thy: Nu chng
ta gim gi tr ngng th s tng c phn bit gia cc khung hnh
gn ging nhau, nhng cng s lm tng vng khc nhau i vi khung
hnh c khc nhau nhiu, do s lm cho qu trnh x l phc tp hn.
Nh vy, vi k thut tr khung hnh lin k chng ta c c nhn xt
sau:
117

Cha ti u c qu trnh x l, v phi x l tt c khung hnh


c trong on video mc d chng khng c s thay i (cc i
tng khng chuyn ng).
Thu c nhng thay i nh i vi nhng i tng c chuyn
ng chm v c th l khng phn bit c v thay i t, v vy
m kh c th ly c ton b i tng chuyn ng.
Cha nhiu nhiu, do thi tit, tng phn, bng lm thay
i gi tr mu nhng vng khng chuyn ng.
V vy, chng ta s khng thc hin tr khung hnh lin k pht
hin i tng. Di y chng ta s xem xt mt hng tip cn kt hp:
k thut tr khung hnh, o thay i, xt v tr, v k thut d bin nh
a cp xm nng cao hiu qu pht hin i tng chuyn ng.

6.7.2. Pht hin i tng chuyn ng theo hng tip cn


kt hp
y cng l mt hng tip cn da trn k thut tr nh, o
tng t, xt v tr tng i gia cc vng thay i gi tr mu cc
khung hnh, pht hin bin nh a cp xm. Hng tip cn ny c trnh
by nh sau:
u tin, pht hin vng thay i v gi tr mu gia cc khung hnh
theo k thut tr nh im. Nu 2 im c so snh m c gi tr khc
nhau nh hn mt ngng cho trc th chng c coi l ging nhau,
ngc li chng c coi l khc nhau, v c nh du li vo nh Iwb.
Qu trnh kh nhiu bng cc ca s 5x5, 3x3 trn nh en trng Iwb v
xc nh dch chuyn s kh nhiu do thi tit, tng phn. Tip theo,
nh Igc c pht hin bin cho kt qu l nh Iec (nh bin). Kt hp Iec
vi Iwb, chng ta s loi b c tt c nhng im bin nm ngoi vng
chuyn ng (c mu trng), ly c bin ca i tng chuyn ng.
Nhng im bin ca Iec v ln cn vng trng s c nh du li. Cui
cng chng ta x l im bin c nh du xc nh c i tng
chuyn ng.
Di y l bc thc hin ca thut ton pht hin i tng chuyn
ng theo hng tip cn kt hp.
Bc 1: Tr nh v nh du Iwb
Bc 2: Lc nhiu trn nh Iwb, pht hin dch chuyn
Bc 3: Pht hin bin Igc
Bc 4: Kt hp Igc vi Iwb

118

Tip theo, chng ta s xem xt c th hn cc bc thc hin ca


hng tip cn kt hp da trn k thut tr im nh v bin.
6.7.2.1. Tr nh v nh du Iwb
y l bc pht hin vng khc bit da trn k thut tr im nh,
gi tr ngng Threshold = 20. Tin hnh tr tng im nh ca Igc vi
Igp.
Khc vi k thut tr nh lin k, trong qu trnh tr im nh,
chng trnh s m s im Count ging nhau trn ton vng nh. Nu
gi tr tuyt i ca hiu s Count vi Isize (kch thc nh) ln hn mt
gi tr ngng th c coi l khc nhau, ngc li 2 khung hnh c coi
l ging nhau. Do , qu trnh x l ch xem xt vi nhng khung hnh
khc
nhau
ng k.
6.7.2.2. Lc nhiu v pht hin dch chuyn
y l bc hn ch c cc vng m da theo ca s lc nhiu
c chn l 5x5, 3x3 v v tr thay i ca vng nh. Mt tp Iwb c
x l ly c v tr ca vng sng. Nu v tr ca vng sng thay i
nh hn mt gi tr ngng th c coi l nhiu, v lp tc c dp tt.
Kt qu chng ta c c nh en trng Iwb c lc. Vng sng c
ln 1 im nh s c dp tt bi ca s 3x3.
Hnh 6.26 di y minh ha kt qu ca nh Iwb cha lc nhiu v
c lc nhiu.

a) nh khung hnh lin trc Ip

c) nh Iwb cha lc nhiu

b) nh khung hnh hin thi Ic

d) nh Iwb lc nhiu

119

Hnh 6.26. a), b) l 2 khung hnh c sai khc tha mn ngng,


c) nh Iwb cha lc nhiu, d) l nh Iwb sau khi lc nhiu

6.7.2.3. Pht hin bin nh a cp xm Igc


Trong qu trnh ny, nh xm hin thi Igc c pht hin bin da
theo k thut pht hin bin xut c trnh by trong chng 2. T
trn c th xc nh c nh bin ca i tng chuyn ng.

120

a) nh bin Iep ca nh xm lin trc

b) nh bin Iec ca nh xm hin thi

c) nh bin ca i tng chuyn ng


Hnh 6.27. a), b) l 2 nh bin c sai khc tha mn ngng,
c) nh bin ca i tng chuyn ng sau khi lc nhiu

6.7.2.4. Kt hp nh Igc vi Iwb


nh sau khi c pht hin bin Iec c xp chng vi nh en
trng Iwb. Vng en trng kt hp vi im bin s cho ta c tp hp
cc im bao quanh vng chuyn ng. Nhng im bin ca Iec gn vi
vng trng ca Iwb c nh du li trn Igc.
Hm WB_Edge() tr v gi tr ng nu im p l bin, ngc li tr
v gi tr sai. Hm GetPointEdge() s thc hin ly im bin trn Iec sai
lch vi im Iwb(p) l 2 n v. Kt qu im bin tr v s l im gn
nht. Nu khng c kt qu, tr v im trng (gi tr tr v l 255) th
im Iwb(p) c coi l bin ca nh Igc. im ny s c lu li.
Nhng im c lu li s c x l ly c hnh bao quanh i
tng chuyn ng . V qu trnh pht hin c vng bin ca i
tng chuyn ng kt thc.
H thng pht hin khung chuyn ng ca i tng lin tc c hai
nh ri ly khung v in ra.
Di y l mt s hnh nh kt qu t theo hng tip cn kt hp.
on bng video c dng avi, c quay ti ng ba Bc Nam ca thnh
ph Thi Nguyn. on bng c ln 14,01 MB. Kt qu cho thy thut
ton pht hin kh tt cc i tng chuyn ng vi cc tc chuyn
ng khc nhau: t, xe my, xe p. Hnh 6.28 l mt s hnh nh thu
c v c pht hin cc i tng chuyn ng.
121

Hnh 6.28. nh kt qu pht hin i tng chuyn ng

122

Ph lc 1:

MT S NH DNG TRONG X L NH

Hin nay trn th gii c trn 50 khun dng nh thng dng. Sau y
l mt s nh dng nh hay dng trong qu trnh x l nh hin nay.

1. nh dng nh IMG
nh IMG l nh en trng, phn u ca nh IMG c 16 byte cha
cc thng tin:
6 byte u: dng nh du nh dng nh. Gi tr ca 6 byte ny
vit di dng Hexa: 0x0001 0x0008 0x0001
2 byte tip theo: cha di mu tin. l di ca dy cc byte
k lin nhau m dy ny s c lp li mt s ln no . S ln
lp ny s c lu trong byte m. Nhiu dy ging nhau c
lu trong mt byte.
4 byte tip: m t kch c pixel.
2 byte tip: s pixel trn mt dng nh.
2 byte cui: s dng nh trong nh.
nh IMG c nn theo tng dng, mi dng bao gm cc gi
(pack). Cc dng ging nhau cng c nn thnh mt gi. C 4 loi gi
sau:

Loi 1: Gi cc dng ging nhau.

Quy cch gi tin ny nh sau: 0x00 0x00 0xFF Count. Ba byte u


tin cho bit s cc dy ging nhau, byte cui cho bit s cc dng ging
nhau.
Loi 2: Gi cc dy ging nhau.
Quy cch gi tin ny nh sau: 0x00 Count. Byte th hai cho bit s
cc dy ging nhau c nn trong gi. di ca dy ghi
u tp.
Loi 3: Dy cc Pixel khng ging nhau, khng lp li v khng
nn c.
Quy cch gi tin ny nh sau: 0x80 Count. Byte th hai cho bit
di dy cc pixel khng ging nhau khng nn c.
123

Loi 4: Dy cc Pixel ging nhau.


Tu theo cc bt cao ca byte u tin c bt hay tt. Nu bt cao
c bt (gi tr 1) th y l gi nn cc byte ch gm bt 0, s cc byte
c nn c tnh bi 7 bt thp cn li. Nu bt cao tt (gi tr 0) th y
l gi nn cc byte gm ton bt 1. S cc byte c nn c tnh bi 7
bt cn li.
Cc gi tin ca file IMG rt a dng do nh IMG l nh en trng, do
vy ch cn 1 bt cho 1 pixel thay v 4 hoc 8 nh ni trn. Ton b
nh ch c nhng im sng v ti tng ng vi gi tr 1 hoc 0. T l nn
ca kiu nh dng ny l kh cao.

2. nh dng nh PCX
nh dng nh PCX l mt trong nhng nh dng nh c in. N s
dng phng php m ho lot di RLE (Run Length Encoded) nn
d liu nh. Qu trnh nn v gii nn c thc hin trn tng dng nh.
Thc t, phng php gii nn PCX km hiu qu hn so vi kiu IMG.
Tp PCX gm 3 phn: u tp (header), d liu nh (Image data) v bng
mu m rng.
Header ca tp PCX c kch thc c nh gm 128 byte v c
phn b nh sau:
1 byte: ch ra kiu nh dng.Nu l PCX/PCC th n lun c gi
tr l 0Ah.
1 byte: ch ra version s dng nn nh, c th c cc gi tr sau:
+

0: version 2.5.

2: version 2.8 vi bng mu.

3: version 2.8 hay 3.0 khng c bng mu.

5: version 3.0 c bng mu.

1 byte: ch ra phng php m ho. Nu l 0 th m ho theo


phng php BYTE PACKED, ngc li l phng php RLE.
1 byte: S bt cho mt im nh plane.
1 word: to gc tri ca nh. Vi kiu PCX n c gi tr l
(0,0), cn PCC th khc (0,0).
1 word: to gc phi di.
1 word: kch thc b rng v b cao ca nh.
1 word: s im nh.

124

1 word: phn gii mn hnh.


1 word.
48 byte: chia n thnh 16 nhm, mi nhm 3 byte. Mi nhm ny
cha thng tin v mt thanh ghi mu. Nh vy ta c 16 thanh ghi
mu.
1 byte: khng dng n v lun t l 0.
1 byte: s bt plane m nh s dng. Vi nh 16 mu, gi tr ny l
4, vi nh 256 mu (1pixel/8bits) th s bt plane li l 1.
1 byte: s bytes cho mt dng qut nh.
1 word: kiu bng mu.
58 byte: khng dng.
nh dng nh PCX thng c dng lu tr nh v thao tc n
gin, cho php nn v gii nn nhanh. Tuy nhin, v cu trc ca n c
nh, nn trong mt s trng hp lm tng kch thc lu tr. Cng v
nhc im ny m mt s ng dng s dng mt kiu nh dng khc
mm do hn: nh dng TIFF (Targed Image File Format) s m t di
y.

3. nh dng nh TIFF
Kiu nh dng TIFF c thit k lm nh bt cc vn lin
quan n vic m rng tp nh c nh. V cu trc, n cng gm 3 phn
chnh:
Phn Header(IFH): c trong tt c cc tp TIFF v gm
8 byte:
+

1 word: ch ra kiu to tp trn my tnh PC hay my


Macintosh. Hai loi ny khc nhau rt ln th t cc byte
lu tr trong cc s di 2 hay 4 byte. Nu trng ny c gi tr
l 4D4Dh th l nh cho my Macintosh, nu l 4949h l
ca my PC.

1 word: version. t ny lun c gi tr l 42. y l c trng


ca file TIFF v khng thay i.

2 word: gi tr Offset theo byte tnh t u ti cu trc IFD l


cu trc th hai ca file. Th t cc byte ny ph thuc vo
du hiu trng u tin.

Phn th 2(IFD): Khng ngay sau cu trc IFH m v tr c


xc nh bi trng Offset trong u tp. C th c mt hay nhiu
IFD cng tn ti trong mt file.
125

Mt IFD bao gm:


+

2 byte: cha cc DE ( Directory Entry).

12 byte l cc DE xp lin tip, mi DE chim 12 byte.

4 byte: cha Offset tr ti IFD tip theo. Nu y l IFD cui


cng th trng ny c gi tr 0.

Phn th 3: cc DE: cc DE c d di c nh gm 12 byte v chia


lm 4 phn:
+

2 byte: ch ra du hiu m tp nh c xy dng.

2 byte: kiu d liu ca tham s nh. C 5 kiu tham s


c bn:
1: BYTE (1 byte)
2: ASCII (1 byte)
3: SHORT (2 byte).
4: LONG (4 byte)
5: RATIONAL (8 byte)

4 byte: trng di cha s lng ch mc ca kiu d liu


ch ra. N khng phi l tng s byte cn thit lu tr.
c s liu ny ta cn nhn s ch mc vi kiu d liu
dng.

4 byte: l Offset ti im bt u d liu lin quan ti du


hiu, tc l lin quan vi DE khng phi lu tr vt l cng
vi n nm mt v tr no trong file.

D liu cha trong tp thng c t chc thnh cc nhm dng


(ct) qut ca d liu nh. Cch t chc ny lm gim b nh cn thit cho
vic c tp. Vic gii nn c thc hin theo 4 kiu khc nhau c lu
tr trong byte du hiu nn.

4. nh dng file nh BITMAP


Mi file BITMAP gm u file cha cc thng tin chung v file, u
thng tin cha cc thng tin v nh, mt bng mu v mt mng d liu
nh. Khun dng c cho nh sau:
BITMAPFILEHEADER bmfh;
BITMAPINFOHEADER bmih;
RGBQUAD
aColors[];
BYTE
aBitmapBits[];

126

Trong , cc cu trc c nh ngha nh sau:


typedef struct tagBITMAPFILEHEADER {
UINT
DWORD
UINT
UINT
DWORD

/* bmfh */

bfType;
bfSize;
bfReserved1;
bfReserved2;
bfOffBits;

} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER {
DWORD
LONG
LONG
WORD
WORD
DWORD
DWORD
LONG
LONG
DWORD
DWORD

/* bmih */

biSize;
biWidth;
biHeight;
biPlanes;
biBitCount;
biCompression;
biSizeImage;
biXPelsPerMeter;
biYPelsPerMeter;
biClrUsed;
biClrImportant;

} BITMAPINFOHEADER, *LPBITMAPINFOHEADER;
vi
biSize

kch thc ca BITMAPINFOHEADER

biWidth

Chiu rng ca nh, tnh bng s im nh

biHeight

Chiu cao ca nh, tnh bng s im nh

biPlanes

S plane ca thit b, phi bng 1

biBitCount

S bit cho mt im nh

biCompression

Kiu nn

biSizeImage

Kch thc ca nh tnh bng byte

biXPelsPerMeter

phn gii ngang ca thit b, tnh bng im nh trn


met

biYPelsPerMeter

phn gii dc ca thit b, tnh bng im nh trn


met

127

biClrUsed

S lng cc mu thc s c s dng

biClrImportant

S lng cc mu cn thit cho vic hin th, bng 0


nu tt c cc mu u cn hin th

Nu bmih.biBitCount > 8 th mng mu rgbq[] trng, ngc li th


mng mu c 2<< bmih.biBitCount phn t.
typedef struct tagRGBQUAD {
BYTE

rgbBlue;

BYTE

rgbGreen;

BYTE

rgbRed;

BYTE

rgbReserved;

/* rgbq */

} RGBQUAD;
Ta cng c:
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD

bmiColors[1];

} BITMAPINFO, *PBITMAPINFO;

128

Ph lc 2:

CC BC THAO TC VI FILE AVI

AVI l chun video thng c tch hp trong cc th vin ca cc


mi trng lp trnh. x l video, cn c cc thao tc c bn chuyn
v x l nh cc khung hnh (cc frames).

1. Bc 1: M v ng th vin
Trc mi thao tc vi file AVI, chng ta phi m th vin:
AVIFileInit( )
Hm ny khng cn tham s, c nhim v khi ng th vin cung
cp cc hm thao tc vi file AVI. ( l th vin vfw32.lib, c khai
bo trong file vfw.h).
Sau tt c cc thao tc bn phi nh ng th vin m lc u, ch
bng lnh:
AVIFileExit( )
Nu thiu bt c hm no, d l m hay ng th vin th trnh bin
dch u s thng bo li.

2. Bc 2: M v ng file AVI thao tc:


Sau khi m th vin, bn phi m file AVI bn nh thao tc:
AVIFileOpen(PAVIFILE* ppfile, LPCSTR fname, UINT mode,
CLSID pclsidHandler)
Thc cht, hm ny to ra mt vng m cha con tr tr n file c
tn l fname cn m. V ppfile l con tr tr n vng b m . Tham s
mode quy nh kiu m file; chng hn OF_CREATE to mi,
OF_READ c, OF_WRITE ghi . Tham s cui dng
l NULL.
Trc khi ng th vin, bn phi ng file AVI m, bng cch
dng hm:
AVIFileRelease(PAVIFILE pfile)
Trong , pfile l con tr tr n file cn ng.

129

3. Bc 3:
M dng d liu hnh nh hay m thanh trong file AVI m ra
thao tc:
AVIFileGetStream(PAVIFILE pfile, PAVISTREAM * ppavi,
DWORD fccType, LONG lParam)
Trong , pfile l con tr n file m; ppavi tr n dng d liu
kt qu; fccType l loi dng d liu chn m, l streamtypeAUDIO
nu l ting v streamtypeVIDEO nu l hnh, lParam m s loi dng
c m, l 0 nu ch thao tc vi mt loi dng d liu.
Sau cc thao tc vi dng d liu ny, bn nh phi ng n li:
AVIStreamRelease(PAVITREAM pavi).

4. Bc 4: Trng hp thao tc vi d liu hnh ca phim


Chun b cho thao tc vi khung hnh (frames):
AVIStreamGetFrameOpen(PAVISTREAM pavi,
LPBITMAPINFOHEADER lpbiWanted)
Trong pavi tr n dng d liu m, lpbiWanted l con tr tr
n cu trc mong mun ca hnh nh, ta dng NULL s dng cu trc
mc nh.
Hm ny tr v i tng c kiu PGETFRAME dng cho bc 5.
Sau khi thao tc vi cc frame ri, phi gi hm :
AVIStreamGetFrameClose(PGETFRAME pget)

5. Bc 5: Thao tc vi frame
Dng hm
AVIStreamGetFrame(PGETFRAME pget, LONG lpos)
Hm ny tr v con tr tr n d liu ca frame th lpos. D liu
c kiu l DIB nh khi.
Thc hin cc thao tc mong mun.

130

Ph lc 3:

MT S MODUL CHNG TRNH

1. Nhm c, ghi v hin th nh


1.1. Nhm c nh
HDIB WINAPI ReadPCXFile(HFILE hf)
{
PCXHEADER pcx;
if (!::ReadPCXHeader(hf, &pcx)) return NULL;
// make a new bitmap header
BITMAPINFOHEADER bmi;
::InitBitmapInfoHeader(&bmi, (DWORD)(pcx.window.xmaxpcx.window.xmin+1), (DWORD)(pcx.window.ymaxpcx.window.ymin+1), pcx.bitsperpixel);
// Locate the memory
HDIB hDIB = ::GlobalAlloc(GMEM_MOVEABLE,
(DWORD)sizeof(BITMAPINFOHEADER) +
(DWORD)::PaletteSize((LPSTR)&bmi) + bmi.biSizeImage);
if (!hDIB) return NULL; // Fail
LPBITMAPINFOHEADER pDIB =
(LPBITMAPINFOHEADER)::GlobalLock(hDIB);
*pDIB = bmi;
DWORD wBytes = (WORD)WIDTHBYTES(pDIBbiWidth*pDIB
biBitCount);
/*---------------- DU LIEU CHUNG ------------------*/
W = wBytes;
nH = (int)pDIBbiHeight;
nW = pDIBbiWidth;
lpRGB = (LPRGBQUAD)(pDIB + 1);
131

pImage = ((HBYTE)::FindDIBBits((LPSTR)pDIB));
/*--------------------------------------------------*/
HBYTE pLine = ((HBYTE)::FindDIBBits((LPSTR)pDIB)) +
wBytes*(pDIBbiHeight-1);
WORD sizeBuff = 10240,

// 10 KB

index = 10, cr = 0, tmp = 0;


HGLOBAL hBuffers = ::GlobalAlloc(GMEM_MOVEABLE,
sizeBuff+64);
HBYTE pBuffers = (HBYTE)::GlobalLock(hBuffers);
for(int i=0;i<256;++i)
{
HistogramC[i] = 0;
MauNen[i] = 0;
}
int L;
BYTE Color;
DWORD d=0;
for (i = 0; i < (int)pDIBbiHeight; i++)
{
DWORD total = 0;
while (total < pcx.bytesperline)
{
if (index >= cr) // Buffers
{
if ((tmp > 0)&&(index == cr)) pBuffers[0] = pBuffers[index];
else tmp = 0;
index = 0;
#ifdef _WIN32
cr = _lread(hf, (LPVOID)(pBuffers+tmp), sizeBuff);

132

d+=cr;
#else
#endif// _WIN32
if (!tmp) {tmp = 1; cr--;}
}
static BYTE b;
if ((b = pBuffers[index++]) >= 0xC0) // Get first byte
{
b &= 0x3F;
if (total < wBytes)
#ifdef _WIN32
{
L = min((int)b, (int)(wBytes-total));
memset((void*)(pLine+total),(Color=pBuffers[index++]),L);
HistogramC[Color] += L;
}
#else
#endif// _WIN32
total += (WORD)b;
}
else if (total < wBytes)
{
pLine[total++] = b;
++HistogramC[b];
}
else total++;
}
pLine -= (LONG)wBytes;
}
LPRGBQUAD lpRGB = (LPRGBQUAD)(pDIB + 1);
if (pDIBbiBitCount == 1) // Create the Look Up Table
133

{
lpRGB[0].rgbRed = lpRGB[0].rgbGreen = lpRGB[0].rgbBlue = 0; //
Black
lpRGB[1].rgbRed = lpRGB[1].rgbGreen = lpRGB[1].rgbBlue = 255;
// White
lpRGB[0].rgbReserved = lpRGB[1].rgbReserved = 0;
} else // 8 bit image, read LUT from file
{
#ifdef _WIN32
_llseek(hf, -768, FILE_END);
_lread(hf, (LPVOID)pBuffers, 768); // Read
#else
#endif// _WIN32
CString s;
for (i = 0; i < 256; i++) // Convert to RGBQUAD
{
RGBRoad[i].rgbRed = lpRGB[i].rgbRed = pBuffers[i*3];
RGBRoad[i].rgbGreen = lpRGB[i].rgbGreen = pBuffers[i*3+1];
RGBRoad[i].rgbBlue = lpRGB[i].rgbBlue = pBuffers[i*3+2];
RGBRoad[i].rgbReserved = lpRGB[i].rgbReserved = 0;
}
}
double TotalPixel = 1.0*nH*nW;
double Color_i;
int Count=0;
CString s;
for(i=1;i<255;++i)
{
if(HistogramC[i])
++Count;
Color_i = 1.0*HistogramC[i]/TotalPixel;

134

if(Color_i > NGUONG_NEN)


MauNen[i] = 1;
}
if(Count>=1)
{
int LENGHT = 150;
DWORD j=LENGHT;
DWORD i;
while(j<=nH)
{
for(i=1;i<=nW;++i)
if(i%LENGHT == 0)
PhatHienNen(i-LENGHT,j-LENGHT,i,j);
j += LENGHT;
}
}
MauNen[255]=1; // COI MAU TRANG LA 1 MAU NEN.
MauNen[0] = 0; // COI MAU DEN NHU LA 1 MAU CUA DUONG.
::GlobalUnlock(hDIB);
::GlobalUnlock(hBuffers);
::GlobalFree(hBuffers);
sNgaba = 0;
for(i=0;i<S;++i)
for(int j=0;j<S;++j)
dd[i][j] = 0;
return hDIB;
}
double m_TotalPoints;
VOID WINAPI PhatHienNen(int x1,int y1,int x2,int y2)
135

{
ZeroMemory(HistogramC,256*4);
int i,j;
BYTE c;
for( j=y1;j<=y2;++j)
for( i=x1;i<=x2;++i)
{
c = getPoint(i,j);
++HistogramC[c];
}
m_TotalPoints = (x2-x1)*(y2-y1);
for(i=1;i<256;++i)
if(!MauNen[i] && 1.0*HistogramC[i]/m_TotalPoints >
NGUONG_NEN)
MauNen[i] = TRUE;
PhatHienNen(x1,y1,(x1+x2)/2,(y1+y2)/2);
PhatHienNen((x1+x2)/2,y1,x2,(y1+y2)/2);
PhatHienNen(x1,(y1+y2)/2,(x1+x2)/2,y2);
PhatHienNen((x1+x2)/2,(y1+y2)/2,x2,y2);
}
/*---------------------------------------------------------------------*/
HDIB WINAPI ReadPCXFile(LPCSTR fName)
{
#ifdef _WIN32
HFILE hf = _lopen(fName, OF_READ);
#else
#endif// _WIN32
if (!hf) return NULL;
::SetCursor(::LoadCursor(NULL, IDC_WAIT));
HDIB hDIB = ::ReadPCXFile(hf);

136

_lclose(hf);
::SetCursor(::LoadCursor(NULL, IDC_ARROW));
return hDIB;
}
/*---------------------------------------------------------------------*/
BOOL WINAPI ReadPCXHeader(HFILE hf, LPPCXHEADER pcxh)
{
// Read the file's header
#ifdef _WIN32
if (_lread(hf, (LPVOID)pcxh, 128) != 128) return FALSE;
#else
#endif// _WIN32
if ( pcxhmanufacture != 0x0A ) // Check manufacture of the PCX file
return FALSE;
// Only work with B/W and 8 bit image
if ((pcxhbitsperpixel*pcxhnplanes != 1) &&
(pcxhbitsperpixel*pcxhnplanes != 8))
return FALSE;
if (pcxhencoding != 1) // Unknow how to decode
return FALSE;
return TRUE;
}
/*---------------------------------------------------------------------*/
VOID WINAPI CreatePCXHeader(LPPCXHEADER pcxh,
LPBITMAPINFOHEADER lpDIB)
{
pcxhmanufacture= 0x0A;// Signature
pcxhversion= (lpDIBbiBitCount == 1) ? 2 : 5;// PCX version
pcxhencoding= 0x01;// Run length
pcxhbitsperpixel = (char)lpDIBbiBitCount;

137

pcxhwindow.xmin = 0;
pcxhwindow.ymin= 0;
pcxhwindow.xmax= lpDIBbiWidth -1;
pcxhwindow.ymax= lpDIBbiHeight-1;
pcxhhres= (WORD)lpDIBbiXPelsPerMeter;
pcxhvres= (WORD)lpDIBbiYPelsPerMeter;
pcxhreserved= 0x00;
pcxhnplanes= 1;
pcxhbytesperline=
(WORD)WIDTHBYTES(lpDIBbiBitCount*lpDIBbiWidth);
pcxhpalette_info= 1;
for (int i = 0; i < 58; i++) pcxhfiller[i] = 0;
if (lpDIBbiBitCount == 1)
{// create LUT
pcxhcolormap[0] = pcxhcolormap[1] = pcxhcolormap[2] =
0;
pcxhcolormap[3] = pcxhcolormap[4] = pcxhcolormap[5] =
0;
}
}
/*---------------------------------------------------------------------*/
DWORD WINAPI CompressLine(HBYTE pDes, HBYTE pSource,
DWORD Bytes)
{
DWORD j = 0, iw = 0;
while ( j < Bytes )
{
BYTE Count = 1;
BYTE item = pSource[j];
while ((j < Bytes-1) && (item == pSource[j+1]) && (Count < 0xFF0xC0-1))
{
138

j++;
Count++;
}
if ((Count > 1)||(item >= 0xC0))
{
pDes[iw++] = Count + 0xC0;
pDes[iw++] = item;
}
else pDes[iw++] = item;
j++;
}
return iw;
}

1.2. Nhm ghi nh


BOOL WINAPI SavePCX(HDIB hDIB, HFILE hf)
{
if (!hDIB || !hf) return FALSE;
LPBITMAPINFOHEADER lpDIB =
(LPBITMAPINFOHEADER)::GlobalLock(hDIB);
PCXHEADER pcxh;
::CreatePCXHeader(&pcxh, lpDIB);
#ifdef _WIN32
_lwrite(hf, (LPCSTR)&pcxh, 128);
#else
#endif// _WIN32
DWORD wBytes =
(WORD)WIDTHBYTES(lpDIBbiWidth*lpDIBbiBitCount);
// Get DIB line 0
HBYTE pLine = ((HBYTE)::FindDIBBits((LPSTR)lpDIB)) +
wBytes*(lpDIBbiHeight-1);
///// Buffer

139

WORDsizeBuff = 10240; // 10 KB
HGLOBAL hBuffers = ::GlobalAlloc(GMEM_MOVEABLE,
sizeBuff+64);
HBYTEpBuffers = (HBYTE)::GlobalLock(hBuffers);
///
for (DWORD i = 0; i < (DWORD)lpDIBbiHeight; i++)
{
// Write line
#ifdef _WIN32
_lwrite(hf, (LPCSTR)pBuffers, (UINT)::CompressLine(pBuffers,
pLine, wBytes));
#else
#endif// _WIN32
pLine -= (LONG)wBytes;// Next line
}
if (lpDIBbiBitCount == 8)
{
LPRGBQUAD lpRGB = (LPRGBQUAD)(lpDIB + 1);
for (i = 0; i < 256; i++) // Convert to RGBQUAD
{
pBuffers[i*3] = lpRGB[i].rgbRed;
pBuffers[i*3+1]= lpRGB[i].rgbGreen;
pBuffers[i*3+2]= lpRGB[i].rgbBlue;
}
#ifdef _WIN32
BYTE b = 0x0C;
_lwrite(hf, (LPCSTR)&b, 1); // Write signature of palette
_lwrite(hf, (LPCSTR)pBuffers, 768); // Write palette
#else
#endif// _WIN32
}

140

::GlobalUnlock(hDIB);
::GlobalUnlock(hBuffers);
::GlobalFree(hBuffers);
return TRUE;
}
/*---------------------------------------------------------------------*/
BOOL WINAPI SavePCX(HDIB hDIB, LPCSTR fName)
{
HFILE hf = _lcreat(fName, 0); // Check the file could be created
if (!hf) return FALSE;
::SetCursor(::LoadCursor(NULL, IDC_WAIT));
#ifdef _WIN32
hf = _lopen(fName, OF_READWRITE);
#else
#endif// _WIN32
BOOL rs = ::SavePCX(hDIB, hf);
_lclose(hf);
::SetCursor(::LoadCursor(NULL, IDC_ARROW));
return rs;
}

1.3. Nhm hin th nh


BOOL WINAPI PaintDIB(HDC hDC, LPRECT lpDCRect, HDIB hDIB,
LPRECT lpDIBRect, CPalette* pPal)
{
/* Check for valid DIB handle */
if (!hDIB) return FALSE;
/* Lock down the DIB, and get a pointer to the beginning of the bit
buffer
*/
LPSTR lpDIBHdr = (LPSTR) ::GlobalLock((HGLOBAL)hDIB);
LPSTR lpDIBBits = ::FindDIBBits(lpDIBHdr);
141

// Get the DIB's palette, then select it into DC


// Select as background since we have
// already realized in forground if needed
HPALETTE hOldPal = ::SelectPalette(hDC,
(HPALETTE)pPalm_hObject, TRUE);
::RealizePalette(hDC);
/* Make sure to use the stretching mode best for color pictures */
::SetStretchBltMode(hDC, COLORONCOLOR);
/* Determine whether to call StretchDIBits() or SetDIBitsToDevice() */
BOOL bSuccess;
if ((RECTWIDTH(lpDCRect) == RECTWIDTH(lpDIBRect)) &&
(RECTHEIGHT(lpDCRect) == RECTHEIGHT(lpDIBRect)))
bSuccess = ::SetDIBitsToDevice(hDC, // hDC
lpDCRectleft,

// DestX

lpDCRecttop,

// DestY

RECTWIDTH(lpDCRect),

// nDestWidth

RECTHEIGHT(lpDCRect),

// nDestHeight

lpDIBRectleft,

// SrcX

(int)DIBHeight(lpDIBHdr) - lpDIBRecttop RECTHEIGHT(lpDIBRect),

// SrcY

0,

// nStartScan

(WORD)DIBHeight(lpDIBHdr),

// nNumScans

lpDIBBits,

// lpBits

(LPBITMAPINFO)lpDIBHdr,

// lpBitsInfo

DIB_RGB_COLORS);

// wUsage

else
bSuccess = ::StretchDIBits(hDC,

// hDC

lpDCRectleft,

// DestX

lpDCRecttop,

// DestY

RECTWIDTH(lpDCRect),

// nDestWidth

RECTHEIGHT(lpDCRect),

// nDestHeight
142

lpDIBRectleft,

// SrcX

lpDIBRecttop,

// SrcY

RECTWIDTH(lpDIBRect),

// wSrcWidth

RECTHEIGHT(lpDIBRect),

// wSrcHeight

lpDIBBits,

// lpBits

(LPBITMAPINFO)lpDIBHdr,

// lpBitsInfo

DIB_RGB_COLORS,

// wUsage

SRCCOPY);

// dwROP

///
::GlobalUnlock((HGLOBAL) hDIB);
/* Reselect old palette */
if (hOldPal) ::SelectPalette(hDC, hOldPal, TRUE);
return bSuccess;
}
/*---------------------------------------------------------------------*/
BOOL WINAPI CreateDIBPalette(HDIB hDIB, CPalette* pPal)
{
/* if handle to DIB is invalid, return FALSE */
if (!hDIB) return FALSE;
LPSTR lpbi = (LPSTR)::GlobalLock((HGLOBAL)hDIB);
/* get pointer to BITMAPINFO */
LPBITMAPINFO lpbmi = (LPBITMAPINFO)lpbi;
/* get the number of colors in the DIB */
WORD wNumColors = ::DIBNumColors(lpbi);
if (!wNumColors)
{
::GlobalUnlock((HGLOBAL)hDIB);
return FALSE;
}
/* allocate memory block for logical palette */

143

HANDLE hLogPal = ::GlobalAlloc(GHND, sizeof(LOGPALETTE) +


sizeof(PALETTEENTRY) * wNumColors);
/* if not enough memory, clean up and return NULL */
if (!hLogPal)
{
::GlobalUnlock((HGLOBAL)hDIB);
return FALSE;
}
LPLOGPALETTE lpPal =
(LPLOGPALETTE)::GlobalLock((HGLOBAL)hLogPal);
/* set version and number of palette entries */
lpPalpalVersion = PALVERSION;
lpPalpalNumEntries = (WORD)wNumColors;
for (int i = 0; i < (int)wNumColors; i++)
{
lpPalpalPalEntry[i].peRed = lpbmibmiColors[i].rgbRed;
lpPalpalPalEntry[i].peGreen = lpbmibmiColors[i].rgbGreen;
lpPalpalPalEntry[i].peBlue = lpbmibmiColors[i].rgbBlue;
lpPalpalPalEntry[i].peFlags = 0;
}
/* create the palette and get handle to it */
BOOL bResult = pPalCreatePalette(lpPal);
::GlobalUnlock((HGLOBAL) hLogPal);
::GlobalFree((HGLOBAL) hLogPal);
::GlobalUnlock((HGLOBAL) hDIB);
return bResult;
}
/*---------------------------------------------------------------------*/
LPSTR WINAPI FindDIBBits(LPSTR lpbi)
{
return (lpbi + *(LPDWORD)lpbi + ::PaletteSize(lpbi));

144

145

/*---------------------------------------------------------------------*/
DWORD WINAPI DIBWidth(LPSTR lpDIB)
{
return ((LPBITMAPINFOHEADER)lpDIB) biWidth;
}
/*---------------------------------------------------------------------*/
DWORD WINAPI DIBHeight(LPSTR lpDIB)
{
return ((LPBITMAPINFOHEADER)lpDIB) biHeight;
}
/*---------------------------------------------------------------------*/
WORD WINAPI PaletteSize(LPSTR lpbi)
{
return (WORD)(::DIBNumColors(lpbi) * sizeof(RGBQUAD));
}
/*---------------------------------------------------------------------*/
WORD WINAPI DIBNumColors(LPSTR lpbi)
{
if (((LPBITMAPINFOHEADER)lpbi) biClrUsed)
return (WORD)((LPBITMAPINFOHEADER)lpbi) biClrUsed;
/* Calculate the number of colors in the color table based on the number
of bits per pixel for the DIB.
*/
WORD wBitCount = ((LPBITMAPINFOHEADER)lpbi) biBitCount;
if (wBitCount <= 8) return (2 << wBitCount);
return 0;
}
/*-----------------------------------------------------------------*/
void WINAPI InitBitmapInfoHeader(LPBITMAPINFOHEADER lpbi,
DWORD dwWidth, DWORD dwHeight, int nBPP)
{
146

#ifdef _WIN32
memset((void*)lpbi, 0, sizeof (BITMAPINFOHEADER));
#else
#endif// _WIN32
lpbibiSize
lpbibiWidth

= sizeof (BITMAPINFOHEADER);
= dwWidth;

lpbibiHeight = dwHeight;
lpbibiPlanes = 1;
if (nBPP <= 1) lpbibiBitCount = 1;
else if(nBPP <= 4)lpbibiBitCount = 4;
else if(nBPP <= 8)lpbibiBitCount = 8;
else lpbibiBitCount = 24;
lpbibiSizeImage =
((DWORD)WIDTHBYTES(dwWidth*lpbibiBitCount))*dwHeight;
if(lpbibiBitCount == 1)
M("Anh 1 bit khong xet !");
CString s;
s.Format("W = %ld H = %ld bit =
%d",dwWidth,dwHeight,lpbibiBitCount);
}

2. Nhm pht hin gc nghing vn bn


/*===============================================
* Hm: Next(HBYTE Image,DWORD x,DWORD y,int dir ,BYTE c0)
* Mc ch:Tm im en k tip ngc chiu ng h trong d bin
*/
int WINAPI Next(HBYTE Image,DWORD x,DWORD y,int dir ,BYTE c0)
{
int c,dem=8;
DWORD newx,newy;
while(dem>0)
{
147

newx=x+ROW[(dem+dir)%8];
newy=y+COL[(dem+dir)%8];
if(newx>=0 && newx<biHeight && newy>=0 && newy<biWidth)
if(GetPoint(Image,newx,newy)==c0) return((dir+dem)%8);
--dem;
}
return(-1);
}
/*===============================================
* Hm: Inverse(HBYTE Image,DWORD x,DWORD y,int dir ,BYTE c0)
* Mc ch:Tm im en k tip ngc chiu ng h trong d bin
*/
int WINAPI Inverse(HBYTE Image, DWORD x, DWORD y, int dir,
BYTE c0)
{
DWORD newx,newy,dem=0;
while(dem<8)
{
newx=x+ROW[(dem+dir)%8];
newy=y+COL[(dem+dir)%8];
if(newx>=0 && newx<biHeight && newy>=0 && newy<biWidth)
if(GetPoint(Image,newx,newy)==c0) return((dem+dir-1)%8);
++dem;
}
return(8);
}
/*===============================================
* Hm: PreProcessing(HDIB hDIB,int numclr,int dilation)
* Mc ch: X l s b

148

*/
void WINAPI PreProcessing(HDIB hDIB,int numclr,int dilation)
{
LPBITMAPINFOHEADER lpDIB
=(LPBITMAPINFOHEADER)::GlobalLock(hDIB);
HBYTE Image=((HBYTE)::FindDIBBits((LPSTR)lpDIB));
if(lpDIBbiBitCount<8)
{
AfxMessageBox("Khong xu ly anh den trang ");
return;
}
int c,id=0,Id[256];
WORD clr,min;
DWORD i,j,temp,maxhis=0,His[256];
biHeight=lpDIBbiHeight; biWidth =lpDIBbiWidth;
for(i=-1;++i<256;){ His[i]=0;Id[i]=i;}
for(i=-1;++i<360;)for(j=-1;++j<4500;)Hough[i][j]=0;
for(i=-1;++i<biHeight;) for(j=-1;++j<biWidth;)
{
Mark[i][j]=0;
c=GetPoint(Image,i,j);
if(His[c]==0)++id;
++His[c];
}
if(id>numclr)
{
for(i=-1;++i<255;) for(j=i;++j<256;)
if(His[i]<His[j])
{
id=Id[i];Id[i]=Id[j];Id[j]=id;
temp=His[i];His[i]=His[j];His[j]=temp;

149

}
for(i=-1;++i<256;)His[i]=0;
for(i=-1;++i<biHeight;) for(j=-1;++j<biWidth;)
{
min=256; c=GetPoint(Image,i,j);
for(int l=numclr;--l>=0;)
if(min>abs(Id[l]-c))
{
min=abs(Id[l]-c);clr=Id[l];
}
SetPoint(Image,i,j,clr);++His[clr];
}
}
for(i=-1;++i<256;)
if(His[i]>maxhis)
{
maxhis=His[i];Maunen=int(i);
}
if(dilation==1)
Dilation(hDIB);
::GlobalUnlock(hDIB);
}
/*===============================================
* Hm: Dilation(HDIB hDIB)
* Mc ch: Gin n phc v cho vic x l
*/
void WINAPI Dilation(HDIB hDIB)
{
int i,j;
BYTE c0,c1,c2,c3,c4;

150

LPBITMAPINFOHEADER
lpDIB=(LPBITMAPINFOHEADER)::GlobalLock(hDIB);
HBYTE Image= ((HBYTE)::FindDIBBits((LPSTR)lpDIB));
HBYTE Image1=((HBYTE)::FindDIBBits((LPSTR)lpDIB));
for(i=0;++i<lpDIBbiHeight;)
for(j=0;++j<lpDIBbiWidth;)
{
c0=GetPoint(Image,i,j);
c1=GetPoint(Image,i,j+1);
c2=GetPoint(Image,i,j-1);
c3=GetPoint(Image,i-1,j);
c4=GetPoint(Image,i+1,j);
if(c0!=c1&&c1!=Maunen&&c1==c2)
{
SetPoint(Image,i,j,c1);j++;
}
else if(c0!=c3&&c3!=Maunen&&c4==c3){
SetPoint(Image,i,j,c3);j++;}
}
::GlobalUnlock(hDIB);
}
/*===============================================
* Hm: HoughTransform(RectAngle Rec)
* Mc ch: Bin i Hough
*/
void WINAPI HoughTransform(RectAngle Rec)
{
double phi,x,y;
long i,j;
x=double(Rec.bot);
y=double(Rec.rig+Rec.lef)/2;

151

for(i=-1;++i<=360;)
{
phi=double(i)/2-90;
phi=double(phi*pi)/180;
j=int(x*cos(phi)+y*sin(phi)+0.5);
if(j>0)
++Hough[i][j];
}
}
/*===============================================
* Hm: DetectAnOject(HBYTE Image,DWORD x,DWORD y,BYTE
clr,DWORD lab,RectAngle &rec,DWORD &ny)
* Mc ch: Pht hin cc i tng phc v cho bins i Hough
*/
int DetectAnOject(HBYTE Image,DWORD x,DWORD y,BYTE
clr,DWORD lab,RectAngle &rec,DWORD &ny)
{
DWORD y0=y;ny=y;
int i,dir,newdir,savedir,prm=0,ch=0;
tagPoint moi,P[20001];
while(GetPoint(Image,x,y-1)==clr)
y=y-1;
if(Mark[x][y]>0)
{
Mark[x][y0]=Mark[x][y]; return(-1);
}
Mark[x][y]=lab;
moi.x=x;moi.y=y;
rec.top=x;rec.bot=x; rec.lef=y;rec.rig=y;

152

savedir=dir=Inverse(Image,x,y,4,clr);
if(dir==8) return(-1);
do
{
newdir=Next(Image,moi.x,moi.y,dir,clr);
moi.x=moi.x+ROW[newdir]; moi.y=moi.y+COL[newdir];
if(moi.x<rec.top) rec.top=moi.x;
if(moi.x>rec.bot) rec.bot=moi.x;
if(moi.y<rec.lef) rec.lef=moi.y;
if(moi.y>rec.rig) rec.rig=moi.y;
if(Mark[moi.x][moi.y]==0)
{
P[++prm]=moi; Mark[moi.x][moi.y]=lab;
if(moi.x==x&&moi.y>ny) ny=moi.y;
}
dir = ((((newdir+1)/2)*2)%8+2)%8;
}
while(moi.x!=x||moi.y!=y||Inverse(Image,moi.x,moi.y,dir,clr)!=savedi
r);
rec.prm=prm;
if(prm>=12&&rec.bot-rec.top<=50&&rec.rig-rec.lef<=50)
{
if(prm<80&&rec.rig-rec.lef<40&&rec.bot-rec.top<40)
for( i=0;++i<=prm;)
SetPoint(TempImage,P[i].x,P[i].y,10);
return(1);
}
if(prm>=600&&(rec.bot-rec.top)>=150&&(rec.rig-rec.lef)>=150)
{
for(DWORD j=y-1;++j<biWidth;)
if(GetPoint(Image,x,j)!=clr)

153

{
ny=j-1;break;
}
for(i=0;++i<=prm;)
{
SetPoint(Image,P[i].x,P[i].y,Maunen);
Mark[P[i].x][P[i].y]=0;
}
}
return(0);
}
/*===============================================
* Hm: DetectAndCorrect(HDIB hDIB,int numclr,int dilation)
* Mc ch: Pht hin v hiu chnh gc nghing
*/
HDIB WINAPI DetectAndCorrect(HDIB hDIB,int numclr,int dilation)
{
HBYTE Image;
DWORD val,i,j,l,prm,wid,hei,nexty,id=0,label=0;
double goc; tagPoint al; RectAngle rec;
HDIB hDIB1=CopyImage(hDIB);
PreProcessing(hDIB,numclr,dilation);TempDIB=::Taoanh(hDIB);
LPBITMAPINFOHEADER lpDIB
=(LPBITMAPINFOHEADER)::GlobalLock(hDIB);
LPBITMAPINFOHEADER lpDIB1
=(LPBITMAPINFOHEADER)::GlobalLock(TempDIB);
Image =((HBYTE)::FindDIBBits((LPSTR)lpDIB));
TempImage =Image;
for(i=-1;++i<biHeight;) for(j=-1;++j<biWidth;)
if(Inverse(Image,i,j,4,GetPoint(Image,i,j))==8)

154

SetPoint(Image,i,j,Maunen);

155

for(i=-1;++i<biHeight;) for(j=-1;++j<biWidth;)
{
if(Mark[i][j]==0&&(c=GetPoint(Image,i,j))!=Maunen)
{
val=DetectAnArea(Image,i,j,c,++label,rec,nexty);
if(val>=0) j=nexty;
if(val==1) Rec[++id]=rec;
}
else if(Mark[i][j]>0)
{
for(l=biWidth;--l>=j;)
if(Mark[i][l]==Mark[i][j])
{
j=l;break;
}
}
}
AverageComponents(Rec,id);al.x=biHeight;al.y=biWidth;
for(i=0;++i<=id;)
{
prm=Rec[i].prm;wid=Rec[i].rig-Rec[i].lef; hei=Rec[i].bot-Rec[i].top;
if(prm<10*Cvavr&&wid<5*Widthavr&&hei<5*Heightavr)
HoughTransform(Rec[i]);
}
SkewEstimation(goc);
if(goc!=0)
{
if(goc>0&&goc<180)TempDIB=Rote(hDIB1,goc);
else if(goc<180) TempDIB=NegativeRote(hDIB1,goc);
biHeight=lpDIB1biHeight;biWidth =lpDIB1biWidth;

156

for(i=-1;++i<biHeight;) for(j=-1;++j<biWidth;)
if(GetPoint(TempImage,i,j)!=Maunen)
{
al.x=i;i=biHeight;break;
}
for(j=-1;++j<biWidth;) for(i=-1;++i<biHeight;)
if(GetPoint(TempImage,i,j)!=Maunen)
{
al.y=j;j=biWidth;break;
}
if(goc!=0)
TempDIB=CorrectAlignment(TempDIB,al);
::GlobalUnlock(hDIB);::GlobalUnlock(TempDIB);
return(TempDIB);
}
::GlobalUnlock(hDIB);
::GlobalUnlock(TempDIB);
return(hDIB);
}
/*===============================================
* Hm: SkewEstimation(double &goc)
* Mc ch: c lng gc nghing
*/
void WINAPI SkewEstimation(double &goc)
{
double angle;
DWORD max=0,max1=0,total=0,i,j;
DWORD Dis=long(sqrt(biWidth*biWidth+biHeight*biHeight));
if(Dis>=65535)
Msg(" Vuot qua chi so mang Hough");
157

for(i=-1;++i<360;)
for(j=-1;++j<=Dis;)
if(Hough[i][j]>max)
max=Hough[i][j];
for(i=-1;++i<360;)
{
total=0;
for(j=-1;++j<=Dis;)
if(Hough[i][j]>max/2)
total+=Hough[i][j];
if(total>max1)
{
max1=total;angle=double(i)/2-90;
}
}
goc=double(angle*pi/180);
}
/*===============================================
* Hm: AverageComponents(RectAngle Rec[15000],int id)
* Mc ch: Tnh ton cc i tng c kch thc trung bnh
*/
void WINAPI AverageComponents(RectAngle Rec[15000],int id)
{
DWORD i,label=0, Prm[3401],Hei[3401],Wid[3401];
for(i=-1;++i<=3000;)
{
Prm[i]=0;Hei[i]=0;Wid[i]=0;
}
for(i=-1;++i<=id;)
158

{
if(Rec[i].prm<=400)
++Prm[Rec[i].prm];
if(Rec[i].rig-Rec[i].lef<=400)
++Wid[Rec[i].rig-Rec[i].lef];
if(Rec[i].bot-Rec[i].top<=400)
++Hei[Rec[i].bot-Rec[i].top];
}
Cvavr=Averaging(Prm,16,400);
Widthavr=Averaging(Wid,8,100);
Heightavr=Averaging(Hei,8,100);
}
/*===============================================
* Hm: Averaging(DWORD Av[400],WORD bn,WORD id)
* Mc ch: Phc v cho vic tnh ton cc i tng c kch thc trung
bnh
*/
WORD WINAPI Averaging(DWORD Av[400],WORD bn,WORD id)
{
if(bn%2!=0)
{
Msg("ib%2!=0");
return(0);
}
WORD i=0,j=0,a,b,dx;
DWORD max=0,max1=0,max2=0,His[201];
for(i=-1;++i<=200;)
His[i]=0;
for(i=-1;++i<=id;)
His[i/bn]+=Av[i];

159

for(i=-1;++i<=id/bn;)
if(His[i]>max){ max=His[i];dx=i; }
a=dx*bn;b=a+bn;
while(1)
{
max1=0;max2=0;
for(i=a;i<a+bn/2;++i)
max1+=Av[i];
for(i=a+bn/2;i<b;++i)
max2+=Av[i];
if(max1>max2)
b=a+bn/2;
else
a=a+bn/2;
bn=bn/2;
if(bn==2)
return(int(b));
}
}

160

TI LIU THAM KHO

[1]. Phm Vit Bnh (2007), Pht trin k thut d bin, pht hin bin v
ng dng, Lun n Tin s.
[2]. Phm Vit Bnh (2006), Mt s tnh cht ca php ton hnh thi v
ng dng trong pht hin bin, Tp ch Tin hc v iu khin hc,
Tp 22, s 2, 2006, 155-163.
[3]. Phm Vit Bnh, Cao L Mnh H, Nng Ton (2005), Mt cch
tip cn mi trong pht hin bin ca nh a cp xm, K yu Hi
tho Quc gia ln th 8 - Mt s vn chn lc ca Cng ngh
Thng tin v Truyn thng, Hi Phng 25-27/08 /2005, Nxb KH&KT,
H Ni 2006, 92-102.
[4]. Phm Vit Bnh, Ng Mnh Hng, Nng Ton (2005), Mt ci
tin thut ton d bin v ng dng trong lm mnh i tng, K
yu Hi tho Khoa hc Quc gia ln th 2 - nghin cu c bn v
ng dng Cng ngh Thng tin-FAIR05, TP H Ch Minh 2324/09/2005, Nxb KH&KT, H Ni 2006, 477-485.
[5]. Nng Ton, Phm Vn Dng, Phm Vit Bnh (2005), ng dng
chu tuyn trong pht hin gc nghing vn bn, K yu Hi tho
Quc gia ln th 7 - Mt s vn chn lc ca Cng ngh Thng tin
v Truyn thng, Nng 18-20/08 /2004, Nxb KH&KT, H Ni
2005, 432-441.
[6]. Nng Ton, Phm Vit Bnh (2004), Mt thut ton ct ch in
dnh mc t da vo chu tuyn, chuyn san Cc cng trnh nghin
cu v trin khai Cng ngh Thng tin v Vin thng, Tp ch Bu
chnh Vin thng & Cng ngh Thng tin, s 12 thng 8/2004, 50-56.
[7]. Lng Mnh B, Nguyn Thanh Thy (2002), Nhp Mn X l nh
s, Nxb Khoa hc v K thut, 2002.
[8]. Ng Quc To, Nng Ton (2001), Tch bng da trn tp cc
hnh ch nht ri rc, chuyn san Cc cng trnh nghin cu v trin
khai Cng ngh thng tin v vin thng, Tp ch Bu chnh Vin
thng, s 5 nm 2001, 73-79.
[9]. Nng Ton (2001), Nghin cu mt s phng php biu din
hnh dng v ng dng trong nhn dng nh, Lun n Tin s.
[10]. J.R.Paker (1997), Algorithms for Image processing and Computer
Vision. John Wiley & Sons, Inc.
161

[11]. Randy Crane (1997), A simplified approach to image processing,


Prentice-Hall, Inc.
[12]. John C.Russ (1995), The Image Procesing Handbook. CRC Press,
Inc.
[13]. Adrian Low (1991), Introductory Computer Vision and Image
Processing, Copyright (c) 1991 by McGrow Hill Book Company
(UK) Limited.
[14]. Anil K.Jain (1989), Fundamental of Digital Image Processing.
Prentice Hall, Engwood cliffs.
[15]. T. Pavlidis (1982), Algorithms for Graphics and Image Processing,
Computer Science Press.

162

You might also like