首页 > 解决方案 > OpenCV - 获取图像的一部分

问题描述

我想将图像的一部分加载到另一个图像中。有几种简单的方法可以做到这一点,但例如cv::Mat OutImage = Image(cv::Rect(7,47,1912,980)),结果图像太大例如:
我得到了一张 1920 x 1024 像素的图像。我想从中剪下一个 cv:Rect(7,47,1912,980) 。我建议,生成的图像的大小为 (1912 - 7 = 1905) x (980 - 47 = 933) 像素,但它有 1912 x 980。看来,Opencv 只是在右下侧切割并保持左上区域。

图像的尺寸很重要,因为在下一步中,我想执行减法,这仅在 Mat 对象具有相同尺寸时才有效。我也不想用自己设计的循环,因为性能很重要。

有任何想法吗?

问候,扬

标签: c++opencvmat

解决方案


实际上是cv:Rect(x,y,width,height),所以您应该将最后两个参数设置为您愿意输出的宽度和高度。请注意您设置的范围,否则会导致错误。


推荐阅读