我遇到了openCv IplImage裁剪的问题.假设tmp和img都是IplImage *.使用代码:
printf("Orig dimensions: %dx%d\n", img->width, img->height);
cvSetImageROI(img, cvRect(0, 0,500,500));
tmp = cvCreateImage(cvGetSize(img),img->depth,img->nChannels);
cvCopy(img, tmp, NULL);
cvResetImageROI(img);
img = cvCloneImage(tmp);
printf("Orig dimensions after crop: %dx%d\n", tmp->width, tmp->height);
当我使用上面的cvRect时,我会得到一个像预期的那样裁剪尺寸为500 x500的图像,但是当我使用rect(400,400,500,500)时,我会得到尺寸为500 X 320的图像.
解决方法:
cvRect定义为(int x,int y,int width,int height),not(int left,int top,int right,int bottom).因此,您从点(x,y)=(400,400)开始选择500×500区域.我猜您的图像高度是720;).