我写了一些代码,在图像的左侧和右侧添加10%的灰色条,如下所示:
// Create image 20% wider
cv::Mat widenedImage(image.rows,
image.cols * 1.2,
CV_8UC1,
127); // Grey colour
// Make a region of interest in the middle of the new image
cv::Mat toROI(widenedImage, cv::Rect((widenedImage.cols - image.cols) / 2.0,
0,
image.cols,
image.rows));
// Copy the image to the region of interest
image.copyTo(toROI);
如果没有代码,直接使用image
,应用运行正常。添加后,XCode的内存图不会增长,但我会收到几条警告,然后是此消息。
有什么想法吗?
答案 0 :(得分:0)
我通常会这样创建toROI
:
cv::Mat toROI(widenedImage(cv::Rect((widenedImage.cols - image.cols) / 2.0,
0,
image.cols,
image.rows)));
或者,如果您以后不需要toROI
,我会建议这样的事情:
image.copyTo(widenedImage( cv::Rect((widenedImage.cols - image.cols) / 2.0,
0,
image.cols,
image.rows)));
或者可以考虑使用copyMakeBorder()
。
此外,您的浮点分区可能会产生舍入错误。尝试在之前将大小值保存为整数。