opencv 新建黑色图片 c++
时间: 2023-07-25 20:35:42 浏览: 485
在C++中,你可以使用OpenCV库中的Mat类来创建和操作图像。以下是一个示例代码,用于创建一张全黑的图像:
```c++
#include <opencv2/opencv.hpp>
int main() {
// 创建一个 512x512 的全黑图像
cv::Mat img(512, 512, CV_8UC3, cv::Scalar(0,0,0));
// 显示图像
cv::imshow("image", img);
// 等待按键按下
cv::waitKey(0);
// 关闭窗口
cv::destroyAllWindows();
return 0;
}
```
在这个示例中,我们使用`cv::Mat`类创建了一个 512x512 的全黑图像。`CV_8UC3`表示图像的类型为8位无符号整数,每个像素有3个通道(BGR)。我们使用`cv::Scalar(0,0,0)`初始化每个像素的BGR值为0,即黑色。然后,我们使用`cv::imshow`函数显示图像,并使用`cv::waitKey`函数等待按键按下。最后,我们使用`cv::destroyAllWindows`函数关闭窗口。
如果你想要创建一张全白或任何其他颜色的图像,你只需要将`cv::Scalar`函数的参数值改为你想要的颜色值即可。例如,创建一张全白图像的代码如下:
```c++
cv::Mat img(512, 512, CV_8UC3, cv::Scalar(255,255,255));
```
相关问题
C++opencv新建一个八位的图片并显示、
要新建一个八位的图片并显示,可以使用以下代码:
```c++
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
int main()
{
cv::Mat image(500, 500, CV_8UC1, cv::Scalar(0)); // 新建一个 500x500 的单通道(8位)图像,像素值初始化为 0
// 在图像上画一个红色的圆
cv::circle(image, cv::Point(250, 250), 100, cv::Scalar(255), 3);
// 显示图像
cv::imshow("Image", image);
cv::waitKey(0);
return 0;
}
```
这个程序首先创建了一个 500x500 的单通道(8位)图像 `image`,像素值初始化为 0。然后,在这个图像上画了一个红色的半径为 100 的圆,并将图像显示出来。最后,程序等待用户按下任意键后退出。
运行程序后,应该会看到一个黑色背景上有一个红色的圆。
阅读全文