繁体   English   中英

使用OpenCV和C ++从图像中提取子图像

[英]Extract sub-image from image using OpenCV and C++

我正在尝试从openCV和C ++的RGB图像中获取子图像。 我已经看过有关该主题的其他主题,但对我而言却无效。

这是我使用的代码:

Mat src = imread("Images/00011_00025.ppm");
Rect crop(1, 1, 64, 67);
Mat rez = src(crop);

图片尺寸为64x67,因此我不明白为什么在控制台中出现以下错误:

断言失败(0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi。高度<= m。行)

关于此错误的原因有什么想法?

Rect crop(1, 1, 64, 67);

矩形的左上角位于位置(1,1),其大小设置为64x67。

Mat rez = src(crop);

使用此矩形裁剪图像时,您的边界越用越多,因为矩形的偏移量为一个像素,但与要裁剪的图像大小相同。 您可以手动考虑宽度和高度的偏移量,或者,这是我首选的裁剪方法,可以使用cv :: Range

使用范围,您可以定义行和列的跨度以执行裁剪:

cv::Range rows(1, 64);
cv::Range cols(1, 67);
Mat rez = src(rows, cols);

暂无
暂无

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

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