繁体   English   中英

OpenCV中图像矩阵的子区域

[英]Subregion of image matrix in OpenCV

我有一个矩阵,其中包含尺寸为1920x1080的RGB相机的色框。 从该图像中,我想摆脱左右两侧,使其尺寸为960x1080。

但是,我似乎无法弄清楚如何准确获得图像的这一部分。 我能够使用以下命令提取尺寸为960x1079的子图像:

cv::Mat A = B(cv::Range(0, dim_y - 1), cv::Range(dim_x / 4, dim_x - dim_x / 4));

这给了我一个有效的图像。 但是,当我尝试使用

cv::Mat A = B(cv::Range::all(), cv::Range(dim_x / 4, dim_x - dim_x / 4));

...图像尺寸为960x1080,但数据无效且不包含任何值(已通过VS ImageWatch扩展名检查)

这里可能是什么问题?

这两个版本实际上都是有效的。

您可以通过将其保存到计算机来进行验证。 cv::Range (仅适用于行范围)的右边界为最大值时,这应该是ImageWatch的错误。


另请注意, cv::Range的右边界是唯一的。 因此,为了使两个版本的图像相同,您应该将第一个版本更改为:

cv::Mat A = B(cv::Range(0, dim_y), cv::Range(dim_x / 4, dim_x - dim_x / 4));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM