有熟悉opencv的吗?关于复制图像中感兴趣的部分
for(i=0;i<(faces?faces->total:0);i++){CvRect*r=(CvRect*)cvGetSeqElem(faces,i);IplImag...
for(i=0;i<(faces?faces->total:0);i++)
{
CvRect* r = (CvRect*)cvGetSeqElem( faces, i );
IplImage* save = cvCreateImage( cvSize(cvRound((r->width)*scale),cvRound((r->height)*scale)), img->depth, img->nChannels);
cvSetImageROI(img,cvRect(cvRound(r->x*scale),cvRound(r->y*scale),cvRound((r->x+r->width)*scale),cvRound((r->y+r->height)*scale)));
cvCopy(img,save,NULL);
cvResetImageROI(img);
cvSaveImage("iborn.jpg",img,0);
}
这是我函数里想把img中检测到的若干张人脸区域复制到save中并保存,但是程序报错...
我新建的save的depth和size明明和检测到的人脸的是一样的。。我刚学opencv,很多都还不懂
我知道问题在哪了, cvSetImageROI(img,cvRect(cvRound(r->x*scale),cvRound(r->y*scale),cvRound((r->width)*scale),cvRound((r->height)*scale)));但是图片还是出不来我想要的人脸,我解决了O(∩_∩)O~~谢谢 展开
{
CvRect* r = (CvRect*)cvGetSeqElem( faces, i );
IplImage* save = cvCreateImage( cvSize(cvRound((r->width)*scale),cvRound((r->height)*scale)), img->depth, img->nChannels);
cvSetImageROI(img,cvRect(cvRound(r->x*scale),cvRound(r->y*scale),cvRound((r->x+r->width)*scale),cvRound((r->y+r->height)*scale)));
cvCopy(img,save,NULL);
cvResetImageROI(img);
cvSaveImage("iborn.jpg",img,0);
}
这是我函数里想把img中检测到的若干张人脸区域复制到save中并保存,但是程序报错...
我新建的save的depth和size明明和检测到的人脸的是一样的。。我刚学opencv,很多都还不懂
我知道问题在哪了, cvSetImageROI(img,cvRect(cvRound(r->x*scale),cvRound(r->y*scale),cvRound((r->width)*scale),cvRound((r->height)*scale)));但是图片还是出不来我想要的人脸,我解决了O(∩_∩)O~~谢谢 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询