C++opencv新建一个八位的图片,并为特定的像素点赋值
时间: 2024-02-06 20:09:09 浏览: 71
可以使用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);
```
阅读全文