Из комментариев ОП:
stitched: cols: 4295 rows: 2867 bounding rect[4274 x 2845 from (11, 12)]
stitched: cols: 4274 rows: 2845 bounding rect[4272 x 2843 from (12, 13)]
В первом случае прямоугольник пытается извлечь размер (4274, 2845)
из (11, 12)
в изображении stitched
.Это означает, что он принимает пиксели от (11, 12)
до (4285, 2857)
, что находится в пределах изображения stitched
, так как изображение stitched
имеет размер (4295, 2867)
. Нет проблем .
Во втором случае прямоугольник пытается извлечь размер (4272, 2843)
из (12, 13)
в изображении stitched
.Это означает, что он принимает пиксели от (12, 13)
до (4284, 2856)
, что выходит за границы сшитого изображения, так как изображение stitched
имеет размер (4274, 2845)
. Проблема .
Подизображение, которое вы пытаетесь извлечь, намного больше, чем большее изображение.
(- 215: подтверждение не выполнено) 0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y &&0 <= roi.height && roi.y + roi.height <= m.rows </p>
Сообщение об ошибке также указывает на это.roi
в сообщении об ошибке относится к подизображению, которое вы пытаетесь извлечь, используя cv::boundingRect(c)
, а m
- это stitched
изображение.Координаты этого прямоугольника превышают размер изображения stitched
.
Вы можете проверить это, установив координаты прямоугольника вручную.
Вы не должны получить ошибку с stitched(cv::Rect(11, 12, cv::Size(4274, 2845)
Вы получите ошибку с stitched(cv::Rect(12, 13, cv::Size(4272, 2843)