Professional Documents
Culture Documents
CG ImageProcessing
CG ImageProcessing
ho my tnh
Thc hin:
Mc lc
Contents
I.
Ni dung n......................................................................................................................... 3
II.
2.
3.
Quay (Rotate)................................................................................................................. 6
4.
T l (scale) .................................................................................................................... 6
B.
Shear .............................................................................................................................. 7
Cc php bin i cha hc .............................................................................................. 8
C.
1.
III.
A.
1.
2.
Pho quay..................................................................................................................... 10
3.
Php t l ...................................................................................................................... 11
B.
Affine............................................................................................................................... 12
1.
Represent transformation with the use of matrix ..........Error! Bookmark not defined.
2.
3.
Ci t i vi nh:...................................................................................................... 14
4.
IV.
V.
Ci tin tc : ................................................................................................................ 18
A.
1.
RasterOp ...................................................................................................................... 18
2.
3.
B.
1.
2.
VI.
Kt qu t c ................................................................................................................. 24
VII.
Reference: ........................................................................................................................... 25
I.
Ni dung n
x = x + tx
y = y + ty
(Xem hnh)
2.
i xng (Reflection)
(Xem hnh)
i xng trc tham s cho php bin i ny l mt ng thng, c gi
l trc i xng. Mt im sau khi qua php i xng ny to vi nh ca n mt
ng thng nhn trc i xng lm trung trc. Lu , php i xng trc c th
c dung nh ngha i xng tm. Bng cch ly 2 ln i xng qua 2 trc
vung gc nhau, ta s thu c nh ca php i xng tm vi tm i xng l
giao im 2 trc .
(Xem hnh)
3.
Quay (Rotate)
Php quay: Tham s nhn vo cho php quay l gc quay v tm quay R(O,
). im A sau khi qua php bin i ny to thnh nh A sao cho gc AOA =
Cng thc cho php quay quanh tm O l:
x = x cos( ) y sin( )
y = x sin( ) + y cos( )
(Xem hnh)
4.
T l (scale)
(Xem hnh)
B.
Affine transformation
Shear
(Xem hnh)
C.
Projective Transform
A.
x = x + Tx, y = y +Ty
3.
4.
Php i xng:
1. Vi mi pixel (x, y) trong hnh ban u:
2.
x = -x + Tx, y = -y +Ty
3.
4.
2.
Pho quay
Ta xoay pixel mt gc .
3.
4.
3.
Php t l
tc ly mu (sampling)
1.Vi mi pixel (x, y) trong hnh kt qu
2.
x = x / Sx , y = y / Sy
3.
Lm trn x v y
4.
B.
Affine
1.
Scale:
Shear:
y=v/w
Khi cng thc cho cc php biu din c th l:
Tnh tin:
i xng tm:
Php xoay:
Php t l:
Vic s dng ma trn 3x3 trong khi cc php bin i affine ch chu nh
hng ca ti a 6 h s c th xem l s lng ph v mt no . Tuy nhin ta
c mt li ch khc l c th kt hp nhiu php bin i vo mt ma trn duy
nht nh vo php nhn ma rn
2.
Kt hp
P' = C * R
Vit gn cng thc trn ta c:
P' = C * (B * (A * P)) = (C * B * A) * P
T cng thc trn, ta thy nu t T = C * B * A ta s c T l php bin i
kt hp tun t ca ba php bin i A, B, C.
S kt hp ny c th c m rng ra cho n php bin i lin tip (min
tt cc php bin i u l tuyn tnh).
Cc thao tc bin i bin i nh i hi ta phi thc hin php nhn ma
trn cho tng pixel, v th vic kt hp nhiu php bin i vo mt ma trn duy
nht cho php gim s php tnh phc tp ny xung v tng tc thc thi ln
nhiu ln.
3.
Ci t i vi nh:
2.
3.
4.
4.
Perspective transformation
Php chia trong cng thc khin php bin i perspective phc tp hn
trong tnh ton mt i tnh cht tuyn tnh v khng th kt hp vi cc php bin
i khc
IV. Thit k ci t:
Chng trnh c xy dng trn ngn ng Python, cng s h tr ca th
vin x l hnh nh ( Python Image Library - PIL ).S h tr ny gip cho ngi
lp trnh c th thun tin hn trong vic thao tc trn cc cng vic c lin quan
n x l hnh nh v ha. c thit k ti u cho vic truy xut v lu tr nh
cng kh nng x l mnh m ca b th vin l mt l do c nhiu nh lp
trnh s dng n.. y chc chn l mt cng c khng th thiu cho nhng ai
quan tm n lnh vc lp trnh nn nhng chng trnh c tng tc vi nh.s.
Cu trc ca chng trnh c thit k theo s sau:
Application
mainGUI
Matrix
Convert
Math
PIL
Image
Python
Ci tin tc :
1.
RasterOp
thp nin 1960s; PDP l vit tt ca "Programmed Data Processor model 10" y l my tnh gp
phn a time-sharing tr nn ph bin
cha c copy
Vi thao tc rasterOp ta c th ci t tt c thao tc bin i affine (ngoi
tr php t l). R rng nht l vi php tnh tin, vn l di chuyn ton b pixel
trong hnh gc sang v tr thch hp trong hnh nn. Vi php i xng trc ta cn
di tng hng pixel n v tr i xng ca chng. Vi php shear l thao tc di
tng hng pixel i mt khong cch tng ng. V php quay c th c ci t
bng cch s dng ba php shear (xem phn rotate by shear)
Do c h tr sn t phn cng, cc thao tc rasterOp c th gip ci tin
ng k tc thc thi ca nhng php bin i
2.
Cc gc quay c bit.
Rotate by Shear
. Nu <
B.
Bilinear Interpolation
Pixel art Scaling l thao tc phng ln nhng hnh nh n gin vi phn gii thp v
cha nhiu khi mu c. Cc thut ton ny thng khng p dng c cho nh chp v
chng cha qu nhiu vng c vi sc mu c gradient v bng.
Cc phng php ni suy mu to ra nhng vng m ti v tr ng bin ca cc i
tng trong nh. i vi nh c phn gii nh, nhng vng m ny c th ph lp b mt ca
cc i tng trong nh lm ton b nh b nho i. Phng php ly mu tuy khng lm nho
nh nhng li to ra rng ca iu ny lm ny sinh nhu cu cho mt thut ton khc tt hn.
Ngy nay nhng thut ton pixel art Scaling thng c dng phng ln hnh nh
ca nhng tr chi in t c n mt phn gii c th chp nhn c trn cc my tnh hin
i. Hu ht nhng thut ton ny b gii hn mt t l phng nht nh, b li chng rt hiu
qu v mt phc tp tnh ton, m bo c th chy real-time phc v cho game.
Nhn chung Cc thut ton ny khng tin hnh ly trung bnh mu nh phng php
ni suy, nhng cng khng gn thng mu ca pixel gc cho pixel sau khi phng to nh phng
php ly mu. Sau khi tm c pixel gc tng t nh trong phng php ly mu, chng s
xt 8 pixel ln cn ca pixel gc v ty trng hp c th m gn mu ca pixel sau bin i
bng vi mu ca 1 trong s 9 pixel ny. Mt s thut ton ni ting nht trong phng php ny
l hqx2 v scale2x / scale3x3
Hqx: hq l vit tt ca high quality, x l k hiu ca vic phng ln. Thut ton do Maxim Stepin pht
trin, c 3 phin bn cho 3 t l phng 2x, 3x v 4x dng trong cc chng trnh gi lp my chi game: Nestopia,
bsnes, ZSNES
l mt thun ton pixel art scaling m ngun m pht hnh di giy php GPL. Thut ton c bn m rng cho t l
phng to 3x ngoi ra cn c scale4x vn l thut ton scale2x c chy 2 ln lin tip.
VI. Kt qu t c
Nh vy, v c bn, sau qu trnh tm hiu, nhm c bn nm vng cc k
thut cn thit p dng cc php bin i affine ln nh. C th p dng c tt
c cc php bin i, ng thi xy dng c giao din trc quan cho php ngi
dng nhp cc thng s cho php bin i m chng trnh demo s thc hin.
Ci t c thut ton bilinear Interpolation ci thin cht lng nh sau
khi bin i kh tt.
Tuy nhin vn cn im c th ci thin c trong chng trnh nh vic
thot khoi s l thuc vo th vin c sn trong vic m, to v lu file nh.
Nu c th t thao tc trc tip ln file nh trn a cng, chng ta c th s
dng cc li gi hm h thng truy cp vo tp lnh h tr ho ca CPU,
hoc tt hn na l dng GPU tng hiu nng ca chng trnh.
Cn nhiu thut ton ci thin cht lng nh khc m nhm tm hiu qua
nhng khng kp c thi gian i su nh sharpen, bicubic interpolation, v.v...
VII. Reference:
1 Leptonica website
2 - Alan Paeth, A Fast Algorithm for General Raster Rotation, graphic
Gems, p179, Academic Press, 1990