C++opencv新建一个八位的图片并显示,宽300,高200
时间: 2023-12-19 19:06:32 浏览: 44
可以使用以下代码来创建一个八位的图片并显示,宽300,高200:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 创建一个位的300x200的对象
Mat img200, 300, CV_8UC1 Scalar(0));
// 在图片中心添加一个白色圆形
circle(img, Point(150, 100), 50, Scalar(255), -1);
// 显示图片
namedWindow("image", WINDOW_NORMAL);
imshow("image", img);
waitKey(0);
return 0;
}
```
这里使用 `Mat` 类来创建一个图片,`CV_8UC1` 表示8位深度,单通道图像(灰度图像),`Scalar(0)` 表示初始化所有像素为0。使用 `circle` 函数在图片中心添加一个白色圆形。最后使用 `namedWindow` 函数创建一个窗口并显示图片。
相关问题
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 的圆,并将图像显示出来。最后,程序等待用户按下任意键后退出。
运行程序后,应该会看到一个黑色背景上有一个红色的圆。
C++opencv新建一个八位的图片,并为特定的像素点赋值
可以使用OpenCV库的`cv::Mat`类来创建一个八位的空白图片,并为特定的像素点赋值。以下是一个示例代码:
```c++
#include <opencv2/opencv.hpp>
int main()
{
// 创建一个 100x100 的八位空白图片
cv::Mat img(100, 100, CV_8UC1, cv::Scalar(0));
// 将像素点 (50,50) 赋值为 255
img.at<uchar>(50, 50) = 255;
// 显示图片
cv::imshow("Image", img);
cv::waitKey(0);
return 0;
}
```
在上面的代码中,`cv::Mat`类的构造函数中指定了图片的大小为100x100,数据类型为八位无符号整数(`CV_8UC1`),并且将所有像素点初始化为0。然后,使用`at`方法可以访问特定位置的像素点,并将其赋值为255。最后,使用`imshow`方法显示图片。
注意,如果你想创建彩色图片,可以使用`CV_8UC3`作为数据类型,并且将像素点赋值为一个包含三个通道的向量,例如:
```c++
// 创建一个 100x100 的彩色空白图片
cv::Mat colorImg(100, 100, CV_8UC3, cv::Scalar(0, 0, 0));
// 将像素点 (50,50) 赋值为红色(0,0,255)
colorImg.at<cv::Vec3b>(50, 50) = cv::Vec3b(0, 0, 255);
```