gpt4 book ai didi

opencv - OpenCV中的实时人脸检测

转载 作者:行者123 更新时间:2023-12-02 17:15:01 25 4
gpt4 key购买 nike

我正在尝试编写一些简单的实时人脸检测代码,但是以某种方式无法正常工作。 (我在图像上尝试了人脸检测代码,但是它可以工作,但是在下面的代码中,我在屏幕上得到了灰色图像,并且代码失败)

这是我尝试过的代码(它在输出窗口中一次打印“检测到面部!”)

CvHaarClassifierCascade *cascade;
CvMemStorage *storage;
char *face_cascade="haarcascade_frontalface_alt2.xml";
CvRect* r;
const CvArr* img_size;
IplImage *grayscale;

void detectFacialFeatures( IplImage *img)
{
grayscale = cvCreateImage(cvGetSize(img), 8, 1);
cvCvtColor(img, grayscale, CV_BGR2GRAY);

CvMemStorage* storage=cvCreateMemStorage(0);
cvClearMemStorage( storage );

cvEqualizeHist(grayscale, grayscale);

cascade = ( CvHaarClassifierCascade* )cvLoad( face_cascade, 0, 0, 0 );
CvSeq* faces = cvHaarDetectObjects(grayscale, cascade, storage, 1.1, 3, CV_HAAR_DO_CANNY_PRUNING, cvSize( 50, 50 ) );

if(faces)
{
printf("face detected!");
r = ( CvRect* )cvGetSeqElem( faces, 0 );
cvRectangle( img,cvPoint( r->x, r->y ),cvPoint( r->x + r->width, r->y + r->height ), CV_RGB( 255, 0, 0 ), 1, 8, 0 );
}
}

int _tmain(int argc, _TCHAR* argv[])
{
int c;
IplImage* color_img;
CvCapture* cv_cap = cvCreateCameraCapture(0);
cvSetCaptureProperty(cv_cap, CV_CAP_PROP_FRAME_WIDTH, 640);
cvSetCaptureProperty(cv_cap, CV_CAP_PROP_FRAME_HEIGHT, 480);
cvNamedWindow("Video",1); // create window
for(;;) {
color_img = cvQueryFrame(cv_cap); // get frame

if(color_img==0)
break;

cvFlip(color_img, 0, 1); //mirror image

detectFacialFeatures(color_img);
cvShowImage("Video", color_img); // show frame

c = cvWaitKey(10); // wait 10 ms or for key stroke
if(c == 27)
break; // if ESC, break and quit
}
/* clean up */
cvReleaseCapture( &cv_cap );
cvDestroyWindow("Video");
}

最佳答案

  • 尝试不调用函数cvFlip和cvEqualizeHistogram。
  • 查看(只需使用cvShowImage)每个操作(cvFlip,cvCvtColor,cvEqualizeHistogram)的结果-这些操作之一的结果可能是灰度图像。
  • 每次尝试查找人脸时都不必加载haar分类器-在开始时将其加载。文件操作缓慢,因此应使您编码更快。
  • 关于opencv - OpenCV中的实时人脸检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14008288/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com