0
我正在使用本網站提供的代碼:http://nashruddin.com/OpenCV_Face_Detection來進行人臉檢測。如何在OpenCV中增加haar檢測器的窗口大小
我想增加檢測到的臉部區域的大小。我不知道該怎麼做。需要一些關於它的幫助..
我使用的代碼是這樣的: //
#include "stdafx.h"
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
CvHaarClassifierCascade *cascade;
CvMemStorage *storage;
void detectFaces(IplImage *img);
int main(int argc, char** argv)
{
CvCapture *capture;
IplImage *frame;
int key;
char *filename = "C:/OpenCV2.1/data/haarcascades/haarcascade_frontalface_alt.xml";
cascade = (CvHaarClassifierCascade*)cvLoad(filename, 0, 0, 0);
storage = cvCreateMemStorage(0);
capture = cvCaptureFromCAM(0);
assert(cascade && storage && capture);
cvNamedWindow("video", 1);
while(key != 'q') {
frame = cvQueryFrame(capture);
if(!frame) {
fprintf(stderr, "Cannot query frame!\n");
break;
}
cvFlip(frame, frame, -1);
frame->origin = 0;
detectFaces(frame);
key = cvWaitKey(10);
}
cvReleaseCapture(&capture);
cvDestroyWindow("video");
cvReleaseHaarClassifierCascade(&cascade);
cvReleaseMemStorage(&storage);
return 0;
}
void detectFaces(IplImage *img)
{
int i;
CvSeq *faces = cvHaarDetectObjects(
img,
cascade,
storage,
1.1,
3,
0 /*CV_HAAR_DO_CANNY_PRUNNING*/,
cvSize(40, 40));
for(i = 0 ; i < (faces ? faces->total : 0) ; i++) {
CvRect *r = (CvRect*)cvGetSeqElem(faces, i);
cvRectangle(img,
cvPoint(r->x, r->y),
cvPoint(r->x + r->width, r->y + r->height),
CV_RGB(255, 0, 0), 1, 8, 0);
}
cvShowImage("video", img);
}
另一個問題:如何增加大小,使其100×100? – lakesh 2012-02-22 19:51:38
@lakesh如果我理解正確,只需將'padding_width'和'padding_height'改爲'100'即可。 – 2012-02-22 19:54:27
哎呀..沒有看到那部分..再次感謝.. – lakesh 2012-02-22 19:55:10