【发布时间】:2020-05-02 04:15:12
【问题描述】:
我正在尝试使用 OpenCV 创建一个空白图像(稍后将被填充),但它必须与预定义图像的大小相同作为新图像。我尝试了以下代码:
(图片为显示成功的lena图片)
Mat lena1(Size(image.cols,image.rows),CV_8UC1);
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
//imshow( "Display Image", image );
imshow("blank", lena1);
但由于某种原因,它仍然显示“图像”而不是 lena1(那将是与预定义图像具有相同大小的空白图像)。
谢谢!
【问题讨论】:
-
您正确地创建了空白图片,但我没有看到任何代码可以用 lena1 像素实际填充您的矩阵,所以
imshow当然会显示空白图片。 -
这个
lena1(Size(image.cols,image.rows),CV_8UC1);不是创建空白图像的正确方法。它使用随机值初始化图像,或者我们应该说它使图像未初始化,您应该使用重载将Scalar与所有组件设置为 0:lena1(Size(image.cols,image.rows),CV_8UC1,cv::Scalar());