You are on page 1of 22

CHNG 1.GII THIU X L NH V TH VIN OPENCV I.

Qu trnh x l nh tng qut

Hnh 1.1 Cc bc c bn trong x l nh S ny gm cc thnh phn sau 1.Phn thu nhn nh(Image Acquisition) nh c th nhn qua camera mu hoc en trng.Thng nh nhn qua camera l dng tng t (loi camera ng chun CCIR vi tn s 1/25,mi nh 25 dng) cng c loi s ha(nh loi CCD- Change Coupled Device) l loi photodiot to cng sng ti mi im nh. Camera thng dng l loi qut dng;nh to ra c 2 chiu.Cht lng mt nh thu c ph thuc vo thit b thu,vo mi trng(nh sng,phong cnh). 2.Tin x l(Image Processing) Sau b thu nhn ,nh c th b nhiu v tng phn thp nn cn a vo b tin x l nng cao cht lng.Chc nng chnh ca b ny l lc nhiu v nng cao tng phn lm nh r nt hn. 3.Phn on (Segmentation) hay phn vng nh Phn vng nh l tch mt nh u vo thnh cc vng khc nhau d biu din v phn tch ty vo mc ch ca ngi x l nh.V d: nhn dng ch,bin s xe,mt ngi,vt th.y l phn phc tp kh khn nht trong x l nh v cng d gy li ,lm mt chnh xc ca nh. 4.Biu din nh (Image Repressentation)

u ra nh sau phn on cha cc im nh ca vng nh (nh phn on) cng vi m lin kt vi cc vng ln cn.Vic bin i cc s liu ny thnh dang thch hp l cn thit cho x l tip theo bng my tnh . 5.Nhn dng v ni suy nh(Image Recognition and Interpretation) Nhn dng nh l qu trnh xc nh nh. Qu trnh ny thng thu c bng cch so snh vi mu chun c hc (hoc lu) t trc. Ni suy l phn on theo ngha trn c s nhn dng. V d: mt lot ch s v nt gch ngang trn phong b th c th c ni suy thnh m in thoi. C nhiu cch phn loai nh khc nhau v nh. Theo l thuyt v nhn dng, cc m hnh ton hc v nh c phn theo hai loi nhn dng nh c bn: - Nhn dng theo tham s. - Nhn dng theo cu trc. Mt s i tng nhn dng kh ph bin hin nay ang c p dng trong khoa hc vcng ngh l: nhn dng k t (ch in, ch vit tay, ch k in t), nhn dng vn bn (Text),nhn dng vn tay, nhn dng m vch, nhn dng mt ngi f) C s tri thc (Knowledge Base) Nh ni trn, nh l mt i tng kh phc tp v ng nt, sng ti, dung lng im nh, mi trng thu nh phong ph ko theo nhiu. Trong nhiu khu x l v phn tch nh ngoi vic n gin ha cc phng php ton hc m bo tin li cho x l, ngi ta mong mun bt chc quy trnh tip nhn v x l nh theo cch ca con ngi. Trong cc bc x l , nhiu khu hin nay x l theo cc phng php tr tu con ngi. V vy, y cc c s tri thc c pht huy. g) M t (biu din nh) nh sau khi s ho s c lu vo b nh, hoc chuyn sang cc khu tip theo phn tch. Nu lu tr nh trc tip t cc nh th, i hi dung lng b nh cc ln v khng hiu qu theo quan im ng dng v cng ngh. Thng thng, cc nh th c c t (biu din) li (hay n gin l m ho) theo cc c im ca nh c gi l cc c trng nh (Image Features) nh: bin nh (Boundary), vng nh (Region). Mt s phng php biu din thng dng: Biu din bng m chy (Run-Length Code) Biu din bng m xch (Chaine -Code) Biu din bng m t phn (Quad-Tree Code) II.Nhng vn c bn trong h thng x l nh 1.im nh (pixel) Gc ca nh (nh t nhin) l nh lin tc v khng gian v sng. x l bng my tnh (s), nh cn phi c s ho. S ho nh l s bin i gn

ng mt nh lin tc thnh mt tp im ph hp vi nh tht v v tr (khng gian) v sng (mc xm). Khong cch gia cc im nh c thit lp sao cho mt ngi khng phn bit c ranh gii gia chng. Mi mt im nh vy gi l im nh (PEL:Picture Element) hay gi tt l Pixel. Trong khun kh nh hai chiu, mi pixel ng vi cp ta (x, y). nh ngha: im nh (Pixel) l mt phn t ca nh s ti to (x, y) vi xm hoc mu nht nh. Kch thc v khong cch gia cc im nh c chn thch hp sao cho mt ngi cm nhn s lin tc v khng gian v mc xm (hoc mu) ca nh s gn nh nh tht. Mi phn t trong ma trn c gi l mt phn t nh. 2 phn gii ca nh nh ngha: phn gii (Resolution) ca nh l mt im nh c n nh trn mt nh s c hin th. Theo nh ngha, khong cch gia cc im nh phi c chn sao cho mt ngi vn thy c s lin tc ca nh. Vic la chn khong cch thch hp to nn mt mt phn b, chnh l phn gii v c phn b theo trc x v y trong khng gian hai chiu. V d: phn gii ca nh trn mn hnh CGA (Color Graphic Adaptor) l mt li im theo chiu ngang mn hnh: 320 im chiu dc * 200 im nh (320*200). R rng, cng mn hnh CGA 12 ta nhn thy mn hn mn hnh CGA 17 phn gii 320*200. L do: cng mt mt ( phn gii) nhng din tch mn hnh rng hn th mn (lin tc ca cc im) km hn. 3 Mc xm ca nh Mt im nh (pixel) c hai c trng c bn l v tr (x, y) ca im nh v xm ca n. Di y chng ta xem xt mt s khi nim v thut ng thng dng trong x l nh. a) nh ngha: Mc xm ca im nh l cng sng ca n c gn bng gi tr s ti im . b) Cc thang gi tr mc xm thng thng: 16, 32, 64, 128, 256 (Mc 256 l mc ph dng. L do: t k thut my tnh dng 1 byte (8 bit) biu din mc xm: Mc xm dng 1 byte biu din: 2^8=256 mc, tc l t 0 n 255). c) nh en trng: l nh c hai mu en, trng (khng cha mu khc) vi mc xm cc im nh c th khc nhau. d) nh nh phn: nh ch c 2 mc en trng phn bit tc dng 1 bit m t 21 mc khc nhau. Ni cch khc: mi im nh ca nh nh phn ch c th l 0 hoc 1. e) nh mu: trong khun kh l thuyt ba mu (Red, Blue, Green) to nn th gii

mu, ngi ta thng dng 3 byte m t mc mu, khi cc gi tr mu: 28*3=224 16,7 triu mu. nh s l tp hp cc im nh vi mc xm ph hp dng m t nh gn vi nh tht III.Th vin opencv

Hnh 1.2.Th vin Opencv

1.Gii thiu OpenCV l mt th vin th gic my tnh m ngun m ca Intel n c th lm n gin ha cng vic lp trnh th gic my tnh ca ban. OpenCV bao gm nhiu kh nng tin tin tm, theo di, nhn dng cc b mt, lc Kalman , l s a dng ca mt h thng tr tu nhn to. Ngoi ra n cn cung cp cc c s thut ton th gic my tnh thng qua cc giao din lp trnh ng dng mc thp. N c ng gi v hon ton min ph , ngi dng c th sn sng s dng cho nhng mc ch khc nhau ca h. Intel a ra phin bn OpenCV u tin vo nm 1999. Ban u , n ch l th vin x l nh ca Intel. V sau , tnh l thuc c loi b v by gi bn c th s dng OpenCV nh mt th vin c lp. OpenCV l mt th vin a nn tng, n chp nhn c Window v Linux, hn th na gn y l Mac OSX.

Hnh 1.3 Th gic my tnh 2. Nhng kh nng ca OpenCV OpenCV c nhiu chc nng , sau y l tm tt cc chc nng ca n: - nh v vo ra video Cc giao din ny cho php bn c d liu nh t cc tp hoc t cc video sng. Bn cng c th to file nh v video. - Th gic my tnh ni chung v cc gii thut x l nh (APIs mc thp v trung bnh) S dng cc giao din ny, bn c th th nghim vi nhiu thut ton th gic nhn to chun m bn khng cn vit code v chng. Chng bao gm s d tm vin, ng thng v gc, iu chnh elip, ly mu v nhng bin i khc nhau (Furi ri rc, cosin ri rc v cc bin i khong cch), v.v - Nhng module th gic my mc cao OpenCV bao gm vi kh nng mc cao. Ngoi vic d tm, nhn dng v theo di khun mt n cn bao gm c lung quang hoc (s dng s di chuyn ng ca camera xc nh cu trc 3D), nh c camera v hnh khi. - Cc gii thut tr tu nhn to v dy hc my Cc ng dng th gic my tnh thng i hi cc phng php dy hc my hoc tr tu nhn to (AI) khc. Mt vi trong s chng sn c trong gi dy hc my ca OpenCV. - Ly mu nh v cc bin i khung nhn N thng c ch x l mt tp im nh mt khi. OpenCV bao gm giao din cho nhng s phn min sao chp nh, x l ngu nhin, hi phc kch thc yu cu, lm vnh, quay v s dng nhng hiu ng phi cnh. - Cc phng php to v phn tch nh nh phn

nh nh phn thng xuyn c s dng trong cc h thng qut kim tra khuyt im hnh dng hay m cc b phn ca vt. - Thao tc vi nh 3D Cc chc nng ny c ch cho php nh x v s xc nh v tr hay vi thit b vt th hoc vi nhiu dng php chi t mt camera n. - Cc thut ton x l nh, th gic my v hin th nh OpenCV bao gm c ton hc c, cc thut ton i s tuyn tnh, khoa hc thng k v hnh hc tnh ton. - ha Cc giao din ny cho php bn vit ch v v trn nh. Thm vo cc hm khc nhau v kh nng sng to, cc hm ny c ch cho s ghi nhn v nh du. V d, nu bn vit mt chng trnh d tm i tng , n gip ch cho cc nh nhn v kch thc v v tr ca chng. - Cc phng php GUI OpenCV bao gm cc giao din ca s ca chnh n. Trong khi y l hn ch so snh ti ci g c th c lm trn mi nn tng, h cung cp API n, nhiu nn tng hin th nh, chp nhn ngi s dng nhp vo qua chut hay bn phm v thc hin iu khin bng thanh trt. - Cu trc d liu v thut ton Vi nhng giao din ny bn c th lu tr, tm kim , bo lu v thao tc mt cch hiu nghim cc danh sch ln, ng , th v cy. - n nh d liu Cc phng php ny cung cp cc giao din tin li cho cc kiu lu tr khc nhau ca d liu trn a v khi phc chng sau. 3 .Mt s th vin c bn ca Opencv Chc nng ca OpenCV c cha trong cc module khc nhau : - CXCORE cha cc nh ngha kiu d liu c s. V d, cc cu trc d liu cho nh, im v hnh ch nht c nh ngha trong cxtypes.h . CXCORE cng cha i s tuyn tnh v phng php thng k, chc nng duy tr v iu khin chui. Mt s t, cc chc nng ha v trn nh cng c t y. - CV cha cc thut ton v x l nh v nh kch c camera. Cc chc nng hnh ha my tnh cng c t y. - CVAUX c m t trong ti liu ca OpenCV nh cha cc m c v th nghim. Tuy nhin, cc giao din n cho s nhn din nh trong module ny. Code sau ny chng c chuyn dng cho nhn din mt v chng c ng dng rng ri cho mc ch . - HIGHGUI v CVCAM c t trong cng th mc l otherlibs. HIGHGUI cha cc giao din vo ra c bn, n cng cha cc kh nng ca s m rng v vo ra video. CVCAM cha cc giao din cho video truy cp qua DirectX trn nn Windows 32 bits. 4.Mt s ng dng ca Opencv trong x l nh

Cc ng dng ca CV rt rng ln v a dng. Tuy nhin mt s ng dng cn mc hn ch v ch hiu qu khi tch hp vi nhng cng ngh khc. Di y chng ta s im qua mt vi ng dng ni bt, qua cm nhn c vai tr cng nh tim nng ca CV. a)Trong lnh vc x l nh ha Thu thp nh

Hnh 1.4 - Knh vin vng Hubble trong khng gian (ngun: NASA) Giai on to dng d liu c s dng trc tip trong CV: nh nh dng s. Qu trnh thu thp nh/video v chuyn i thnh nh s ph thuc vo cc thit b phn cng nh cm ng nh, h thng knh quang hc, mn lc bc sng, h thng chiu sng h tr.

Hnh 1.5 - Camera dng vin thuc ni soi thnh rut (ngun: Hopkins Medical Magazine, Winter 2008) Vi s tin b ca ngnh in t v c kh chnh xc, cc thit b phn cng trong CV hon thin - khong cch, phng i nh, tc chp v nhy sng u pht trin vt bc - kh nng thu thp nh s theo yu cu ca mi ng dng, t knh vin vng chp nh cc thin h xa xm n camera t hon chp nh bn trong c th ngi (S pht trin ca CV hin nay nm kh nng x l v phn tch nhng nh s . Hiu chnh v phc ch nh

Hnh 1.6- Tng tng phn lm cho nh r nt hn (ngun: Wikipedia) Qu trnh hiu chnh gip nh s p hn - lm r nhng chi tit cn thit, ni bt nhng thng tin quan trng trong bc nh. Bao gm nhng thao tc n gin nh tng/gim tng phn, lc nt/m, hiu chnh histogram... nhng em n hiu qu thit thc v c s dng kh ph bin qua cc cng c nh Adobe Photoshop v Corel Photo-paint. Hiu chnh mc phc tp c p dng nhiu trong cc ng dng v chn on y khoa.

Hnh 1.7 - Phc ch nh b m do chuyn ng (ngun: Gonzalez, Digital Image Processing) Phc ch nh l qu trnh p dng cc m hnh ton, xc sut ti lp nhng chi tit cn thiu hoc ghi nhn sai trong qu trnh thu thp nh. V d nh nh chp t v tinh trong khi v tinh tri qua cc rung ng c hc v qua khc x kh quyn s b m. T cc rung ng c ghi nhn v m hnh kh quyn, m hnh sai s c s dng loi b vt m trn nh. X l mu sc v phn gii nh Cng l qu trnh gip lm nh s p hn i vi ngi xem. Trong khi qu trnh hiu chnh, phc hi nh thao tc trn cng gia cc im nh, qu trnh x l mu sc thao tc trn mi tng quan gia cc knh mu trong tng im nh. Thao tc nn v thu nh nh gip gii quyt vn lu tr c s d liu nh ln cng nh tng tc x l nh khi thng tin c gin lc n mc va cho ng dng. X l hnh trng v phn tch chi tit

Hnh 1.8 - X l hnh th v phn tch chi tit ( ngun: Stanford University) X l hnh trng l cng on u tin trong nhm phn tch d liu nh, vi mc tiu xy dng t tp hp cc im nh mt m hnh nh din t bi cc hnh th c bn (hnh ch nht, trn, hnh tr,...). M hnh nh l cu ni t gic quan ca my tnh l nh s n cm quan ca con ngi l nh khi nim. Phn tch chi tit tip ni bng vic nhm cc hnh th trong m hnh nh thnh cc thc th ring bit. y l cng on kh t ng ha nht v quan trng trong CV khi phn ln ng dng cp cao u da trn nh khi nim. Ti dng nh ba chiu v din gii nh

Hnh 1.9 - Xy dng m hnh 3D t tp hp nh (ngun: Stanford University) Phn tch chi tit gp nhiu kh khn v thc hin trn tng nh v da vo phn b cc im nh hai chiu. Cng on xy dng nh ba chiu thc hin trn mt tp hp nh c chp t nhiu v tr khc nhau nhm khai thc mi lin h v khng gian gia cc nh xy dng cc im nh ba chiu. T din gii nh bng cc thc th vi hnh dng, kch thc thc. Din gii nh l qu trnh xc nh thc th no hin din trong nh. Din gii nh i t mc trc quan (hnh dng, kch thc, mu sc,...) n tru tng (hnh ng, sc thi, cm xc,...). Din gii nh mc cao lin h trc tip n tr tu nhn to, v gi vai tr quan trng trong cc ng dng robot gia nh v gii tr.

Hnh 1.10 - Nhn dng thc th bng thut ton SIFT (ngun: David G. Low, University of British Columbia) Nhn dng v gim st thc th Qu trnh xc nh mt thc th no c trong nh hay khng v chuyn ng ra sao trong mt tp hp nh.Qu trnh nhn dng v gim st thc th da trn mt c s d liu y v thc th cng nh kh nng t hc tin ha ca thut ton. Y khoa (chn on, gii phu)

Hnh 1.11 - nh 3D t h thng Brilliance iCT Scanner (ngun: Philips) Cc ng dng trong chn on y khoa da vo cc thit b phn cng a dng nh my chp ct lp (CT - computed tomography), my chp cng hng t (MRI - magnetic resonance imaging), my siu m, chp X-quang. nh chp t cc thit b trn s c iu chnh gip bc s xem xt d dng hn, c tng hp gip bc s nhn nhn y hn.

Ngoi ra, t tp hp nh (chp ct lp, chp bi camera t hon) m hnh 3D c xy dng v s dng hiu qu trong chn on cng nh iu tr. in hnh nh h thng chp ct lp ti tn Brilliance iCT Scanner do cng ty thit b y khoa Philips pht trin nm 2007 (Hnh ) c kh nng to m hnh nh ba chiu ton b cu trc c th bnh nhn - xng khp, c quan ni tng v c n tng mch mu. An ninh (camera thng minh, nhn dng)

Hnh 1.12 Theo di khch b hnh (ngun: IEEE Computer Vision and Pattern Recognition, 2007). CV c th c tch hp vo h thng camera theo di truyn thng, m nhn vai tr theo di v cnh bo, gip gim st vin khng phi trc tip quan st 24/24: pht hin chuyn ng v cnh bo xm phm, pht hin cc tnh hung bt thng da trn nhn dng c ng nh u , cp ngn hng, nguy c cht ui ... Mt ng dng khc ca CV trong lnh vc an ninh l nhn dng khun mt ph bin trn mt s dng my tnh xch tay Giao thng (theo di lu thng, iu khin xe)

Hnh 1.13 - H thng camera iu khin xe t hnh SCABOR (ngun:

Technological University of Cluj Napoca). ng dng c ph bin hin nay l theo di lu thng: cnh bo sm tnh trng n tc, ghi nhn cc trng hp phng nhanh lng lch, chp v truy sut s xe vi phm x l ... Mt ng dng khc ang c nghin cu pht trin l iu khin xe t hnh. H thng camera ghi nhn hnh nh xung quanh khi xe di chuyn, bng cm quan my tnh, nh v ln ng, pht hin cc vt cn v xe khc, nhn bit cc bng ch dn,... iu khin xe. Robot (gia nh, khng gian)

Hnh 1.14 ng dng cm quan my tnh trn robot thm him sao Ha (ngun NASA). Trong lnh vc khng gian, CV c vai tr quan trng trong vic vn hnh cc robot thm him .Trc ht l xy dng m hnh 3D ca b mt hnh tinh hoch nh ng i an ton nht. Trong qu trnh di chuyn, robot c lng chuyn ng ca mnh da trn s phn tch chuyn ng ca cnh quan. Khi tip cn mc tiu cn kho st, robot iu khin cnh tay c hc qua quan st t camera thc hin cc thao tc o bi, ly mu t , chp nh chi tit,... CV cng c pht trin cho cc robot gia nh, gip robot c th xy dng m hnh v nh v mnh (SLAM Simultaneous Localization and Mapping), giao tip vi con ngi qua nhn dng c ng.

T ng ha sn xut (o lng, kim nh cht lng)

Hnh 1.15 - Camera kim nh cht lng sn phm (ngun: machinevision.co.uk) Trong cc dy chuyn sn xut, cng ngh cm quan my tnh c ng dng thay th phng php th cng hoc c hc nhm tng hiu sut v trnh va chm h hi sn phm.

Hnh 1.16 - Camera kim tra s hiu in trn sn phm (ngun: Omron Electronics) . Ph bin nht l o lng v kim nh cht lng sn phm: mu sc v ph u khi sn v xe hi, cn i v hnh dng bnh rng, cht lng in nhn mc

CHNG II: NG DNG OPENCV V NG I CA VT TH 1. Khi nim HSV HSV l i din ta tr ph bin nht ca cc im trong mt m hnh mu RGB. HSV i din sp xp li hnh hc ca mu RGB, l mt n lc c trc quan hn v v mt nhn thc c lin quan hn so vi cc i din Descartes (khi lp phng). Pht trin trong nhng nm 1970 cho cc ng dng ha my tnh, HSL v HSV c s dng ngy cho n ngy hm nay trong b chn mu, trong phn mm chnh sa hnh nh, v t ph bin hn trong phn tch hnh nh v tm nhn my tnh. HSV l vit tt ca vng mu (Hue), bo ha (Saturation), v gi tr (Value), v cng thng c gi l HSB (B cho sng). Vng mu (Hue): dng phn bit cc mu nh xanh, , vng bo ha (Saturation): ch ra mc thun cu mt mu hay khong cch ca mu ti im c cng cn bng ( mu xm). Gi tr (Value): cng nh sng m t i tng pht ra ch khng phi do phn x t ngun sng khc. Trong mi hnh tr HSV, gc xung quanh trc thng ng trung ng tng ng "vng mu ", khong cch t trc tng ng vi "bo ha", v khong cch dc theo trc tng ng vi "gi tr" hoc " sng". Bi v HSV l bin i n gin ca thit b ph thuc vo m hnh RGB, mu sc t nhin m h xc nh ph thuc vo mu sc ca cc mu c bn :mu , xanh l cy, v mu xanh ca thit b hoc ca khng gian RGB c th, v chnh sa gamma c s dng i din cho s tin ca nhng ngi bu c s b. Do , mi thit b RGB c mt HSV khng gian i cng vi n, v s HSV gi tr m t mt mu sc khc nhau cho mi khng gian c bn RGB.

2. S gii thut :

Nhn nh t Camera

Chuyn nh RGB sang nh HSV

Chuyn nh HSV sang nh nh phn

Sai Vt th mu trng xut hin trong nh nh phn.

ng

V ng i v ng bao vt th. Xut ra mn hnh hnh nh nh phn v hnh nh camera thu c c thm ng bao, ng i ca vt.

3. Cc hm s dng trong gii thut: - Hm chuyn t nh mu RGB sang nh mu HSV : void cvCvtColor( const CvArr* src, CvArr* dst, int code ); - Hm chuyn sang nh nh phn : void cvInRangeS( const CvArr* src, CvScalar lower, CvScalar upper, CvArr* dst ); Mi pixel ca src c so snh vi cc gi tr hng (CVScalar()) theo upper v lower. Nu gi tr trong src l ln hn hay bng gi tri hng cvScalar lower v cng nh hn gi tr cvScalar upper, sau gi tr tng ng trong dst s c t thnh 0xFF, ngc li s t thnh 0x00. - Hm bt chuyn ng : void cvMoments( const CvArr* image, CvMoments* moments, int isBinary = 0 ); Khi hm ny c gi, cc SpatialMoment , CentralMoment , NormalizedCentralMoment, HuMoments u c tnh . SpatialMoment:

m pq

I ( x, y ) x
i 1

yq

y p l x-order v q l the y-order, trong order c ngha ly tha m vi thnh phn tng ng c ly theo tng va c hin th. Tng trn tt c cc pixel ca bin vt (ghi ch bi n trong phng trnh). Central moment v c bn l ging nh Moments va m t ngoi tr rng cc gi tr ca x v y dng theo cc cng thc c thay bi cc gi tr hiu dng:

p ,q I ( x, y )( x xavg ) p ( y yavg ) q
i 0

trong xavg m10 / m00 v yavg m01 / m00 .

Normalized moments l ging nh cc central moments ngoi tr rng chng tt c c chia bi ly tha thch hp m00:

p ,q

p ,q
( p q ) / 21 m00

Trong Code ch dng hai gi tr l SpatialMoment v CentralMoment. SpatialMoment tnh khong khng gian c chuyn ng. CentralMoment tnh trung tm ca khng gian . Ly gi tr SpatialMoment chia cho gi tr CentralMoment, s c c ta trung tm ca chuyn ng. - Hm v ng di chuyn: void cvLine( CvArr* array, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness = 1, int connectivity = 8 ); hm ny s ni ln lt cc ta ca trung tm chuyn ng. - Hm v ng bao ca vt : void cvCircle ( CvArr* array, CvPoint center, int radius, CvScalar color, int thickness = 1, int connectivity = 8); Cc gi tr tm v bn knh ca hm cvCircle ly t CvSeq : CvSeq* cvHoughCircles( CvArr* image, void* circle_storage, int method, double dp, double min_dist, double param1 = 100, double param2 = 300, int min_radius = 0, int max_radius = 0);

4. Code thc thi :


#include #include #include #include "stdafx.h" "cv.h" "cvaux.h" "highgui.h"

IplImage* GetThresholdedImage(IplImage* img) { // Convert the image into an HSV image IplImage* imgHSV = cvCreateImage(cvGetSize(img), 8, 3); cvCvtColor(img, imgHSV, CV_BGR2HSV); IplImage* imgThreshed = cvCreateImage(cvGetSize(img), 8, 1); // Convert the HSV image into Binary image cvInRangeS(imgHSV, cvScalar(0,177,198), cvScalar(45,256,256), imgThreshed); cvReleaseImage(&imgHSV); return imgThreshed; } int main() { CvMemStorage* storage = cvCreateMemStorage(0); // Initialize capturing live feed from the camera CvCapture* capture = 0; capture = cvCaptureFromCAM(0); // Couldn't get a device? Throw an error and quit if(!capture) { printf("Could not initialize capturing...\n"); return -1; } // The two windows we'll be using cvNamedWindow("video"); cvNamedWindow("thresh"); // This image holds the "scribble" data... // the tracked positions of the ball IplImage* imgScribble = NULL;

// An infinite loop while(true) { // Will hold a frame captured from the camera IplImage* frame = 0; frame = cvQueryFrame(capture); // If we couldn't grab a frame... quit if(!frame) break; // If this is the first frame, we need to initialize it if(imgScribble == NULL) { imgScribble = cvCreateImage(cvGetSize(frame), 8, 3); } // Holds the yellow thresholded image (yellow = white, rest = black) IplImage* imgYellowThresh = GetThresholdedImage(frame); // Calculate the moments to estimate the position of the ball CvMoments *moments=(CvMoments*)malloc(sizeof(CvMoments)); cvMoments(imgYellowThresh, moments, 1); // The double double double actual moment values moment10 = cvGetSpatialMoment(moments, 1, 0); moment01 = cvGetSpatialMoment(moments, 0, 1); area = cvGetCentralMoment(moments, 0, 0);

// Holding the last and current ball positions static int posX = 0; static int posY = 0; int lastX = posX; int lastY = posY; posX = moment10/area; posY = moment01/area; if(posX>0 && posY>0) { // Print it out for debugging purposes printf("position (%d,%d)\n", posX, posY); // We want to draw a line only if its a valid position }

if(lastX>0 && lastY>0 && posX>0 && posY>0) { // Draw a yellow line from the previous point to the current point cvLine(imgScribble, cvPoint(posX, posY), cvPoint(lastX, lastY), cvScalar(0,255,255), 5); } IplImage* Thresh = GetThresholdedImage(frame); // Add the scribbling image and the frame... and we get a combination of the two cvSmooth(Thresh, Thresh, CV_GAUSSIAN, 9, 9); // Draw a circle around object CvSeq* result= cvHoughCircles(Thresh,storage,CV_HOUGH_GRADIENT,2,frame->width/10); for (int i=0;i< result->total;i++) { float* p= (float*) cvGetSeqElem(result,i); CvPoint pt= cvPoint(cvRound( p[0]),cvRound( p[1])); cvCircle(frame,pt,cvRound( p[2]),CV_RGB(0xff,0xff,0x00),8); } cvAdd(frame, imgScribble, frame); cvShowImage("thresh", imgYellowThresh); cvShowImage("video", frame); // Wait for a keypress int c = cvWaitKey(10); if(c!=-1) { // If pressed, break out of the loop break; } // Release the thresholded image... we need no memory leaks.. please cvReleaseImage(&imgYellowThresh); //delete moments; } // We're done using the camera. Other applications can now use it cvReleaseCapture(&capture); return 0; }

5. Kt qu thc hin :

Nhn xt: - Chng trnh nhn dng c vt v v c ng i ca vt. 6. Hn ch v hng pht trin: - Hn ch : + kh nng nhn dng vt cn b nhu nhiu do cc iu kin mi trng nh nh sng cc vt c mu tng t mu ca vt th. + ch nhn dng c vt th v v ng i mt mu nht nh. - Hng pht trin: + ng dng lm chut 3D

You might also like