我是OpenCV图像处理的新手。我的任务很简单。我必须获得图像的1/4(较低1/4)。图像的大小为320 x240。我在 Mat
中使用了ROI Rect
来获取它。
Mat img_roi;
img_roi= image(cv::Rect(0,180,320,240));
我有以下错误:
first.exe中的0x7669c41f的第一次学位例外:Microsoft C 例外:CV ::异常>在内存位置0x0041ec30 .. first.exe中的0x7669c41f inthandered异常:Microsoft C 例外:CV ::异常在>内存位置0x0041ec30 ..
如果我在上述代码中指定了Rect(0,0,320,60)
,则我将获得结果(上半部分),并且代码适用于其他值,例如Rect (0,0,320,240)
,即完整图像。但没有较低的季度值(0,180,320,240)。
我还应该说我通过使用Iplimage
获得结果。只有 Mat
对象创建问题。
如果你们中有人可以指导我解决这个问题,我真的很感激。
图像的较低1/4为 Rect(0,180,320,60)
。它不是Rect(0,180, 320, 240)
,也不是Rect(0,0,320,60)
。
cv::Rect
的参数为:
cvRect(int x, int y, int width, int height);
在这里,x和y表示左上角,而宽度和高度表示您要在图像中拥有的列和行的数量。
在您的情况下:行= 320,cols = 240
因此,要获得左下角使用:
Rect( 0, image.rows/2, image.cols/2, image.rows/2 )
,如果您想拥有较低右图像,请使用:
Rect( image.cols/2, image.rows/2, image.cols/2, image.rows/2 )