0
나는이 웹 사이트에서 사용할 수있는 코드를 사용하고 있습니다 : http://nashruddin.com/OpenCV_Face_Detection 얼굴 검출.OpenCV에서 haar detector의 창 크기를 늘리는 방법
감지 된 얼굴 영역의 크기를 늘리고 싶습니다. 어떻게해야할지 모르겠다. //
#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);
}
다른 질문 : 100x100 크기를 늘리는 방법? – lakesh
@lakesh 올바르게 이해했다면'padding_width'와'padding_height'을'100'으로 변경하십시오. –
죄송합니다 .. 그 부분을 보지 못했습니다 .. 다시 한 번 감사드립니다 .. – lakesh