资源描述:
《面部识别代码(C语言).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、#include"cv.h"#include"highgui.h"#include#include#include#include#include#include#include#include#include#ifdef_EiC#defineWIN32#endifstaticCvMemStorage*storage=0;staticCvHaarClassifierCascade*cascade
2、=0;voiddetect_and_draw(IplImage*image);constchar*cascade_name="haarcascade_frontalface_alt.xml";/*"haarcascade_profileface.xml";*/intmain(intargc,char**argv){CvCapture*capture=0;IplImage*frame,*frame_copy=0;intoptlen=strlen("--cascade=");constchar*input_name;if(argc>1&&strncmp(argv
3、[1],"--cascade=",optlen)==0){cascade_name=argv[1]+optlen;input_name=argc>2?argv[2]:0;}else{cascade_name="../../data/haarcascades/haarcascade_frontalface_alt2.xml";//opencv装好后haarcascade_frontalface_alt2.xml的路径,//也可以把这个文件拷到你的工程文件夹下然后不用写路径名cascade_name="haarcascade_frontalface_alt2.x
4、ml";//或者cascade_name="C:\ProgramFiles\OpenCV\data\haarcascades\haarcascade_frontalface_alt2.xml"input_name=argc>1?argv[1]:0;}cascade=(CvHaarClassifierCascade*)cvLoad(cascade_name,0,0,0);if(!cascade){fprintf(stderr,"ERROR:Couldnotloadclassifiercascade");fprintf(stderr,"Usage:
5、facedetect--cascade=""[filename
6、camera_index]");return-1;}storage=cvCreateMemStorage(0);if(!input_name
7、
8、(isdigit(input_name[0])&&input_name[1]==' '))capture=cvCaptureFromCAM(!input_name?0:input_name[0]-'0');elsecapture=cvCaptureFromAVI(input_name);cvNamedWindow("
9、result",1);if(capture){for(;;){if(!cvGrabFrame(capture))break;frame=cvRetrieveFrame(capture);if(!frame)break;if(!frame_copy)frame_copy=cvCreateImage(cvSize(frame->width,frame->height),IPL_DEPTH_8U,frame->nChannels);if(frame->origin==IPL_ORIGIN_TL)cvCopy(frame,frame_copy,0);elsecvFl
10、ip(frame,frame_copy,0);detect_and_draw(frame_copy);if(cvWaitKey(10)>=0)break;}cvReleaseImage(&frame_copy);cvReleaseCapture(&capture);}else{constchar*filename=input_name?input_name:(char*)"lena.jpg";IplImage*image=cvLoadImage(filename,1);if(image){detect_and_draw(image);cvWaitKey(0)
11、;cvReleaseImage(&image);}e