【发布时间】:2016-08-08 07:46:32
【问题描述】:
一个非常简单的概念,我有一个 640x480 的垫子和一个 800x480 的屏幕,所以我试图将原始图像复制到黑色 800x480 图像的中心,以便保持纵横比但使用整个屏幕。
我关注this 的帖子并尝试了两种解决方案(直接复制到感兴趣的区域)并得到相同的错误:
OpenCV Error: Assertion failed (0 <= _colRange.start && _colRange.start <= _colRange.end && _colRange.end <= m.cols) in Mat, file /home/pi/opencv-3.0.0/modules/core/src/matrix.cpp, line 464
terminate called after throwing an instance of 'cv::Exception'
what(): /home/pi/opencv-3.0.0/modules/core/src/matrix.cpp:464: error: (-215) 0 <= _colRange.start && _colRange.start <= _colRange.end && _colRange.end <= m.cols in function Mat
Aborted
违规代码:
cv::Mat displayimage = cv::Mat(800, 480, CV_16U, cv::Scalar(0));
modimage1.copyTo(displayimage.rowRange(1,480).colRange(81,720));
我首先尝试使用 (0,480) 和 (80,720) 的开始/结束范围/行,但随后错误使其听起来无法从 0 开始,所以我当然认为我偏离了 1我从 1 开始,结果相同。但实际上,错误是针对 COLUMNS 而不是 ROWS,并且列偏离 1 甚至都无关紧要。那么我试图将这张图片复制到哪里有什么不喜欢的地方呢?
【问题讨论】: