Using OpenCV - Adaboost ( Face Detection )

 

 
//=================================================================
//=== Face Detection ===
//=================================================================

IplImage* runFaceDetection(void) {

	IplImage* tempFrame = cvCreateImage( cvGetSize( iplSrc ) , IPL_DEPTH_8U , iplSrc->nChannels );
//---------------------------------------------------------
	CvHaarClassifierCascade* classifier = (CvHaarClassifierCascade*) cvLoad( StringToChar( filename ) , 0, 0, 0);  
//---------------------------------------------------------
	if( !classifier)  
	{  
		cvZero( tempFrame );
        	return tempFrame;  
	}  
//---------------------------------------------------------
	CvMemStorage* facesMemStorage = cvCreateMemStorage(0);  
//---------------------------------------------------------
	if( iplSrc->origin == IPL_ORIGIN_TL )  
        	cvCopy(iplSrc, tempFrame, 0);  
	else  
        	cvFlip(iplSrc, tempFrame, 0);  
//---------------------------------------------------------
	cvClearMemStorage( facesMemStorage );  
//---------------------------------------------------------
	CvSeq* faces = cvHaarDetectObjects( tempFrame, classifier, facesMemStorage, 1.1, 2, CV_HAAR_DO_CANNY_PRUNING, cvSize(INT_MIN_FACE_WIDTH, INT_MIN_FACE_HEIGHT) );  
//---------------------------------------------------------
	if( faces ) 
        	for(int i=0;i<faces->total;i++)  
        	{  
            		CvRect* rectangle = (CvRect*) cvGetSeqElem( faces , i );  
            		cvRectangle( tempFrame , cvPoint( rectangle->x , rectangle->y ) , cvPoint( rectangle->x + rectangle->width , rectangle->y + rectangle->height ) , CV_RGB(255,0,0) , 2 , 8 , 0);  
        	}  
//---------------------------------------------------------
	cvReleaseMemStorage( & facesMemStorage );   
	cvReleaseHaarClassifierCascade( & classifier );  
//---------------------------------------------------------
    	return tempFrame;  
} 
 

 

Output

 

face detection  

arrow
arrow
    創作者介紹
    創作者 Cuby 56 的頭像
    Cuby 56

    Cuby56

    Cuby 56 發表在 痞客邦 留言(1) 人氣()