0
Я новичок в openCV. Я пытаюсь обрезать изображение, но код, который я написал, не обрезает его. Пожалуйста, помогите мне. Я получил область моего интереса, но когда я пытаюсь скопировать он копирует весь образ не только область интересаOpenCv Cropping issue
#include<iostream>
using namespace std;
#include<vector>
#include<iostream>
#include<opencv2\opencv.hpp>
CvMemStorage * st = 0;
CvHaarClassifierCascade * hcc= 0;
char * path = "C:/Users/Gardezi/Documents/Visual Studio 2012/Projects/AIMRL/AIMRL/haarcascade_frontalface_alt.xml";
bool startDetection(IplImage * img)
{
int i ;
cvCreateImage(cvGetSize(img) , img->depth , img->nChannels);
CvPoint pt1 , pt2;
IplImage * f ;
if (hcc)
{
CvSeq * face = cvHaarDetectObjects(img , hcc , st , 1.1 , 2 , CV_HAAR_DO_CANNY_PRUNING , cvSize(40 , 40));
//Face to Data Base
for (i = 0 ;i < (face? face->total : 0) ; i++)
{
CvRect * r = (CvRect*)cvGetSeqElem(face , i);
pt1.x = r->x;
pt1.y = r->y;
pt2.x = r->x + r->width;
pt2.y = r->y + r->height;
cvRectangle(img , pt1 , pt2 , CV_RGB(255, 0 , 0) , 3 , 8 , 0);
cvSetImageROI(img , cvRect(pt1.x , pt1.y , pt2.x , pt2.y));
f = cvCreateImage(cvGetSize(img) , img->depth , img->nChannels);
cvCopy(img , f , NULL);
}
}
cvShowImage("Result" , f);
cvWaitKey(0);
return true;
}
void main()
{
IplImage * img;
hcc = (CvHaarClassifierCascade *)cvLoad(path , 0 , 0 , 0);
img = cvLoadImage("download.jpg" , 0);
st = cvCreateMemStorage(0);
startDetection(img);
}
Я хотел спросить, как вы делаете это: резюме :: Mat roiOfImage = изображение (КОРОЛЬ) Если когда-нибудь я пытаюсь сделать это он дает мне ошибку – 2014-09-24 07:10:31