3
[OpenCV] Nhận dạng khuôn mặt từ hình ảnh cho trước Written by Super User on 10 September 2012. Yêu cầu : Cho vào một bức ảnh và đầu ra là nhận dạng khuôn mặt. ? 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 #include <cv.h> #include <highgui.h> int main() { CvHaarClassifierCascade * pCascade = 0; //con trỏ nhận diện nằm giữ data trong file XML CvMemStorage * pStorage = 0; // Khởi tạo bộ nhớ đệm CvSeq * pFaceRectSeq; int i; // Khởi tạo IplImage * pInpImg = cvLoadImage("010920121903.jpg",CV_LOAD_IMAGE_COLOR); pStorage = cvCreateMemStorage(0); pCascade = (CvHaarClassifierCascade *)cvLoad(("haarcascade_frontalface_alt.xml"),0,0,0); if (!pInpImg || !pStorage || !pCascade ) { printf("Khoi tao that bai: %s \n", (!pInpImg)? "khong the load file hinh anh" : (!pCascade)? "khong the load file xml -- " "kiem tra dung duong dan":"sai duong dan"); exit(-1); } //Nhận dạng mắt trong ảnh pFaceRectSeq = cvHaarDetectObjects( pInpImg, pCascade, pStorage, 1.1, 3, CV_HAAR_DO_CANNY_PRUNING, cvSize(0,0)); // Tạo cửa sổ để hiển thị hình ảnh

OpenCV Nhan Dang Khuon Mat Cho Truoc

Embed Size (px)

Citation preview

Page 1: OpenCV Nhan Dang Khuon Mat Cho Truoc

[OpenCV] Nhận dạng khuôn mặt từ hình ảnh cho trướcWritten by Super User on 10 September 2012.

     Yêu cầu: Cho vào một bức ảnh và đầu ra là nhận dạng khuôn mặt.

 

?1234567891011121314151617181920212223242526272829303132333435

#include <cv.h>#include <highgui.h>int main(){    CvHaarClassifierCascade * pCascade = 0; //con trỏ nhận diện nằm giữ data trong file XML    CvMemStorage * pStorage = 0; // Khởi tạo bộ nhớ đệm    CvSeq * pFaceRectSeq;    int i;    // Khởi tạo    IplImage * pInpImg = cvLoadImage("010920121903.jpg",CV_LOAD_IMAGE_COLOR);    pStorage = cvCreateMemStorage(0);    pCascade = (CvHaarClassifierCascade *)cvLoad(("haarcascade_frontalface_alt.xml"),0,0,0);    if (!pInpImg || !pStorage || !pCascade )    {        printf("Khoi tao that bai: %s \n",            (!pInpImg)? "khong the load file hinh anh" :            (!pCascade)? "khong the load file xml -- "            "kiem tra dung duong dan":"sai duong dan");        exit(-1);    }   //Nhận dạng mắt trong ảnh    pFaceRectSeq = cvHaarDetectObjects(        pInpImg,        pCascade,        pStorage,        1.1,        3,        CV_HAAR_DO_CANNY_PRUNING,        cvSize(0,0));   // Tạo cửa sổ để hiển thị hình ảnh    cvNamedWindow("Nhan dien khuon mat",CV_WINDOW_AUTOSIZE);    //Vẽ hình chủ nhật xung quanh khuôn mặt    for (i=0;i<(pFaceRectSeq ? pFaceRectSeq->total:0);i++)    {        CvRect * r = (CvRect*)cvGetSeqElem(pFaceRectSeq,i);        CvPoint pt1 = {r->x,r->y};        CvPoint pt2 = {r->x + r->width,r->y + r->height};        cvRectangle(pInpImg,pt1,pt2,CV_RGB(255,0,0),3,4,0);    }

Page 2: OpenCV Nhan Dang Khuon Mat Cho Truoc

36373839404142434445464748

    //hiển thị nhận dạng    cvShowImage("Nhan dien khuon mat",pInpImg);    cvWaitKey(0);    cvDestroyAllWindows();  //Giải phóng bộ nhớ    cvReleaseImage(&pInpImg);    if (pCascade) cvReleaseHaarClassifierCascade(&pCascade);    if (pStorage) cvReleaseMemStorage(&pStorage);}