在 OpenCV C++ 中创建空白图像
Create blank image in OpenCV C++
我正在尝试使用 OpenCV 创建一个空白图像(稍后将被填充),但它必须与预定义图像的大小相同作为新图像。我尝试了以下代码:
(图片为显示成功的lena图片)
Mat lena1(Size(image.cols,image.rows),CV_8UC1);
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
//imshow( "Display Image", image );
imshow("blank", lena1);
但出于某种原因,它仍然显示 "image" 而不是 lena1(那将是与预定义图像具有相同尺寸的空白图像)。
谢谢!
要创建空白图像(用零填充的图像),请使用 cv::Mat::zeros()。它将创建一个矩阵,其中包含您选择的维度和类型,并用零填充。
对于您的情况,请使用以下代码,
Mat lena1 = Mat::zeros(Size(image.cols,image.rows),CV_8UC1);
要用预加载的图像填充它,
image.copyTo(lena1);
如果你想创建一个单一颜色的图像,你也可以这样做
Mat blueImage(cols, rows, CV_8UC1, Scalar(0, 0, 255));
我正在尝试使用 OpenCV 创建一个空白图像(稍后将被填充),但它必须与预定义图像的大小相同作为新图像。我尝试了以下代码:
(图片为显示成功的lena图片)
Mat lena1(Size(image.cols,image.rows),CV_8UC1);
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
//imshow( "Display Image", image );
imshow("blank", lena1);
但出于某种原因,它仍然显示 "image" 而不是 lena1(那将是与预定义图像具有相同尺寸的空白图像)。
谢谢!
要创建空白图像(用零填充的图像),请使用 cv::Mat::zeros()。它将创建一个矩阵,其中包含您选择的维度和类型,并用零填充。
对于您的情况,请使用以下代码,
Mat lena1 = Mat::zeros(Size(image.cols,image.rows),CV_8UC1);
要用预加载的图像填充它,
image.copyTo(lena1);
如果你想创建一个单一颜色的图像,你也可以这样做
Mat blueImage(cols, rows, CV_8UC1, Scalar(0, 0, 255));