MAT OPENCV RECT ROI:违反访问



我是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 )

相关内容

  • 没有找到相关文章

最新更新