Xử lý ảnh

Embed Size (px)

Citation preview

X l nh

L Xun Bch-Phm Kin Giang-Nguyn nh Nam-ng Th Tm

Trng i hc Bch Khoa H NiVin cng ngh thng tin v truyn thng B mn k thut my tnh

Bi tp ln mn x l nh: Extract face sequences from video Nhm thc hin: L Xun Bch Phm Kin Giang Nguyn nh Nam ng Th Tm K thut my tnh K52 K thut my tnh K52 K thut my tnh K52 K thut my tnh K52

Gio vin hng dn : Gv. Hong Vn Hip.

1

X l nhMc lc1.

L Xun Bch-Phm Kin Giang-Nguyn nh Nam-ng Th Tm

Gii thiu v OpenCV .......................................................................................................................... 3 1.1. Tng quan OpenCV ...................................................................................................................... 3 Cc tnh nng......................................................................................................................... 4 T chc .................................................................................................................................. 6

1.1.1. 1.1.2. 1.2.

Ci t OpenCV ............................................................................................................................ 7 Ci t c bn ....................................................................................................................... 7 Ty chnh khi ci t Windows ............................................................................................. 7 Sau khi ci t ....................................................................................................................... 7

1.2.1. 1.2.2. 1.2.3. 1.3.

Lp trnh vi OpenCV: Mt s vn c bn .............................................................................. 8 V tiu v th vin ........................................................................................................... 8 c v Ghi nh ...................................................................................................................... 8 Live Video nhp vo ............................................................................................................ 10 Chuyn i Color ................................................................................................................. 11 OpenCV Iplimage................................................................................................................. 13 Truy cp gi tr Pixel ............................................................................................................ 13

1.3.1. 1.3.2. 1.3.3. 1.3.4. 1.3.5. 1.3.6. 2.

Face Detection. ................................................................................................................................... 15 2.1. 2.2. Background and Preliminaries. ................................................................................................... 15 Thc hin nhn din khun mt, tng bc ............................................................................... 17

3.

Nhn dng khun mt ......................................................................................................................... 19 3.1. 3.2. 3.3. Introduction PCA. ....................................................................................................................... 19 Mathematics of PCA ................................................................................................................... 20 Nhn dng khun mt. ................................................................................................................ 22

4. 5.

Gii thut phn nhm khun mt. ....................................................................................................... 23 Chng trnh. ...................................................................................................................................... 24 5.1. 5.2. 5.3. 5.4. Chng trnh c cc hm x l sau: ........................................................................................... 24 Cc lp x l vi nh: ................................................................................................................. 25 Chc nng chng trnh.............................................................................................................. 27 Chi tit chng trnh. .................................................................................................................. 29

6. 7.

nh gi chng trnh. ....................................................................................................................... 31 Ti liu tham kho ............................................................................................................................. 32

2

X l nh

L Xun Bch-Phm Kin Giang-Nguyn nh Nam-ng Th Tm

1. Gii thiu v OpenCVOpenCV l m ngun m ca Intel, n l mt th vin c kh nng nhng vo trong cc chng trnh c kh nng nhn din hnh nh ca my tnh .N bao gm kh nng tin tin nh pht hin khun mt, theo di khun mt, nhn din khun mt.. Ngoi ra, n cung cp rt nhiu cc thut ton x l nh thng qua cc hm API.

1.1. Tng quan OpenCVIntel pht hnh phin bn u tin ca OpenCV vo nm 1999. Ban u, n yu cu nh l th vin x l hnh nh ca Intel. Nhng cc vn ph thuc c g b v by gi bn c th s dng OpenCV l mt th vin c lp. OpenCV h tr a nn tng. N h tr c Windows v Linux, v gn y hn l MacOSX. Vi giao din ca n l nn tng c lp.

Hnh 1. Cc kh nng ca OpenCV c th l nhn din khun mt (trn cng bn tri), pht hin ng ng mc (trn bn phi), v pht hin cnh (pha di)3

X l nh

L Xun Bch-Phm Kin Giang-Nguyn nh Nam-ng Th Tm

1.1.1.Cc tnh nng Di y l mt bn tm tt ca cc loi chc nng quan trng trong OpenCV, phin bn 1.0: General computer-vision and image-processing algorithms (mid- and low-level APIs). S dng cc interface ny, bn c th th nghim nhiu tiu chun thut ton tm nhn my tnh m khng cn phi code chng. Bao gm cc vic nh : pht hin cnh, ng, v pht hin gc, hnh elip, kim t thp .v nhiu hn na . High-level computer-vision modules OpenCV bao gm mt s kh nng cao cp. Ngoi vic pht hin khun mt, nhn din, v theo di, n cn bao gm dng chy quang hc (bng cch s dng my nh chuyn ng xc nh cu trc 3D), hiu chun my nh. AI and machine-learning methods. ng dng tm nhn my tnh thng i hi my hc hoc s dng phng thc AI khc. Mt s trong s ny l c sn trong gi phn mm OpenCV's Machine Learning Image sampling and view transformations. Thng hu ch x l mt nhm cc im nh nh mt khi . OpenCV bao gm giao din cho tiu vng trch xut hnh nh, ly mu ngu nhin, thay i kch thc, cong vnh, xoay, v cc hiu ng quan im p dng .

4

X l nh

L Xun Bch-Phm Kin Giang-Nguyn nh Nam-ng Th Tm

Methods for creating and analyzing binary (two-valued) images nh nh phn thng c s dng trong cc h thng kim tra m qut pht hin cc khuyt tt hoc trong cc b m. nh nh phn cng thun tin khi nh v tr mt i tng nm bt .

Methods for computing 3D information. Cc chc nng ny rt hu ch lp bn v ni a ho hoc vi nhiu quan gc nhn t mt my nh. Math routines for image processing, computer vision, and image interpretation. OpenCV bao gm cc thut ton ton hc thng c s dng trong i s tuyn tnh, thng k, v hnh hc tnh ton. Graphics. Cc interface ny cho php bn vit vn bn v v trn hnh nh. Ngoi ra, cc chc nng ny rt hu ch cho vic ghi nhn v nh du . V d, nu bn vit mt chng trnh pht hin i tng, n rt hu ch nhn hnh nh vi kch c v v tr ca h. GUI methods OpenCV bao gm cc interface windown ring ca n. Trong khi y l nhng hn ch so vi nhng g c th c thc hin trn cc nn tng khc, h cung cp mt n gin, a nn tng API hin th hnh nh, chp nhn u vo ngi dng thng qua con chut hoc bn phm, v thc hin kim sot thanh trt .5

X l nh

L Xun Bch-Phm Kin Giang-Nguyn nh Nam-ng Th Tm

Datastructures and algorithms Vi cc interface, bn c th thc hiu qu hn cc vic nh: tm kim, lu, v thao tc cc danh sch ln, b su, th v cy . Data persistence Nhng phng php ny cung cp giao din thun tin lu tr cc loi d liu vo lu tr v ly chng sau ny .

1.1.2.T chc Chc nng OpenCV c cha trong mt s module: CXCORE cha cc nh ngha kiu d liu c bn. V d, cu trc d liu im cho hnh nh, hnh ch nht v c quy nh ti cxtypes.h. CV bao gm x l hnh nh v cc phng php hiu chnh my nh. Cc chc nng tnh ton hnh hc cng nm y. CVAUX c m t trong ti liu hng dn ca OpenCV c cha m th nghim v thc nghim.Tuy nhin, cc giao din n gin nht nhn dng khun mt trong m-un ny. ML cha machine-learning interfaces. Cc chc nng cn li c cha trong HighGUI v CVCAM. C hai u nm trong mt th mc c tn l "otherlibs. N cha cc ca s a nn tng, a chc nng. CVCAM cha cc giao din truy cp video thng qua DirectX trn nn tng Windows 32-bit. Tuy nhin, HighGUI cng cha cc giao din video.6

X l nh

L Xun Bch-Phm Kin Giang-Nguyn nh Nam-ng Th Tm

1.2. Ci t OpenCV1.2.1.Ci t c bn OpenCV cho Linux hoc MacOSX l cc bn ng gi nh l mt kho lu tr m ngun. Bn s cn phi xy dng cc th vin tnh v th vin chia s i tng. Bn c th xy dng mt RPM u tin, v ci t t , hoc bin dch v ci t n trc tip. Vi Windows th c ng gi nh l mt thc thi ci t OpenCV v bn cn chy n. N t cc file OpenCV vo mt th mc ty bn chn, thay i ng dn h thng ca bn c th include nhng chng trnh OpenCV. 1.2.2.Ty chnh khi ci t Windows K t khi OpenCV l mt b cng c nh pht trin, khng phi l mt chng trnh, bn c th mun xc nh v tr n u khc hn so vi th mc Program Files ca bn. Nu bn thch xc nh v tr n ni khc, quyt nh rng trc khi bn chy trnh ci t, v nhp vo v tr khi c hi. Bn c th thay i cc bin PATH h thng ca bn bao gm v tr ca h, hoc bn c th di chuyn chng, sau khi ci t, t th mc "bin" ca OpenCV vo th mc SYSTEM_ROOT ca bn. Nu bn mun di chuyn cc file dll, nhng khng chc chn th mc SYSTEM_ROOT ca bn, bn c th xc nh v tr n bng cch chy cc tin ch c sn www.cognotics.com/utilities. Nu bn mun thay i PATH, ch khng phi l di chuyn cc fiel dll, bn c th ci t lm iu cho bn bng cch chn hp kim tra "Thm th mc bin vo PATH." 1.2.3.Sau khi ci t

7

X l nh

L Xun Bch-Phm Kin Giang-Nguyn nh Nam-ng Th Tm

OpenCV cha nhiu th mc con. Cc ti liu th mc cha ti liu html cho tt c cc chc nng v kiu d liu OpenCV. Cc tp tin tiu bn s cn phi bao gm khi bn bin dch chng trnh s dng OpenCV c phn phi gia cc m-un OpenCV. Trn c hai Linux v Windows, bn c th xc nh v tr cc tiu bng cch tm kim th mc ci t v th mc con cho tn tp tin ph hp vi m hnh *. h, *. HPP.

1.3. Lp trnh vi OpenCV: Mt s vn c bn1.3.1.V tiu v th vin Hu ht cc chng trnh OpenCV cn bao gm cv.h v highgui.h. Sau , nhn din khun mt, chng ti cng s bao gm cvaux.h. Cc tp tin tiu cn li c bao gm bi nhng tiu cp cao nht. Mi lin kt ca bn s cn c hai con ng th vin v tn ca cc th vin tnh s dng. Cc th vin tnh, bn cn phi lin kt vi file th vin cxcore.lib, cv.lib, v highgui.lib. Sau , nhn din khun mt, bn cng s lin kt cvaux.lib. y l nhng file trong th mc "lib" ca OpenCV.

1.3.2.c v Ghi nh Hnh nh I / O d dng vi OpenCV.Chng trnh di y l c mt hnh nh t tp tin v vit n nh l mt tp tin th hai, trong mt nh dng nn khc nhau . o // ImageIO.c o // Example showing how to read and write images8

X l nh o o o o o o o o

L Xun Bch-Phm Kin Giang-Nguyn nh Nam-ng Th Tm

#include "cv.h" #include "highgui.h" #include int main(int argc, char** argv) { IplImage * pInpImg = 0; // Load an image from file pInpImg = cvLoadImage("my_image.jpg", CV_LOAD_IMAGE_UNCHANGED); o if(!pInpImg) o { o fprintf(stderr, "failed to load input image\n"); o return -1; o } o // Write the image to a file with a different name, o // using a different image format -- .png instead of .jpg o if( !cvSaveImage("my_image_copy.png", pInpImg) ) o { o fprintf(stderr, "failed to write image file\n"); o } o // Remember to free image memory after using it! o cvReleaseImage(&pInpImg); o return 0; o } c mt tp tin hnh nh, ch cn gi cvLoadImage (), v truyn vo trong hm ng dn fle.OpenCV h tr cc nh dng hnh nh ph bin nht, bao gm JPEG, PNG, v BMP. Bn khng cn phi cung cp thng tin nh dng. cvLoadImage () xc nh nh dng tp tin bng cch c phn u tp tin. vit mt hnh nh tp tin, hy gi cvSaveImage (). Chc nng ny quyt nh nh dng tp tin s dng t phn m rng tp tin. C hai cvLoadImage () v cvSaveImage () trong module HighGUI.9

X l nh

L Xun Bch-Phm Kin Giang-Nguyn nh Nam-ng Th Tm

1.3.3.Live Video nhp vo o // Capture.c o // Example showing how to connect to a webcam and capture o // video frames o #include "stdio.h" o #include "string.h" o #include "cv.h" o #include "highgui.h" o int main(int argc, char ** argv) o { o CvCapture * pCapture = 0; o IplImage * pVideoFrame = 0; o int i; o char filename[50]; o // Initialize video capture o pCapture = cvCaptureFromCAM( CV_CAP_ANY ); o if( !pCapture ) o { o fprintf(stderr, "failed to initialize video capture\n"); o return -1; o } o // Capture three video frames and write them as files o for(i=0; i