c++ 灰度图单色伪彩
时间: 2023-11-24 11:51:26 浏览: 37
以下是C++实现灰度图单色伪彩的代码示例:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取灰度图
Mat grayImg = imread("gray.jpg", IMREAD_GRAYSCALE);
// 定义伪彩色图像
Mat colorImg(grayImg.size(), CV_8UC3);
// 灰度图单色伪彩
for (int i = 0; i < grayImg.rows; i++)
{
for (int j = 0; j < grayImg.cols; j++)
{
int grayValue = grayImg.at<uchar>(i, j);
colorImg.at<Vec3b>(i, j)[0] = grayValue; // B通道
colorImg.at<Vec3b>(i, j)[1] = grayValue; // G通道
colorImg.at<Vec3b>(i, j)[2] = grayValue; // R通道
}
}
// 显示灰度图和伪彩色图像
imshow("Gray Image", grayImg);
imshow("Color Image", colorImg);
waitKey(0);
return 0;
}
```
上述代码中,我们首先读取了一张灰度图像,然后定义了一个与灰度图像大小相同的伪彩色图像。接着,我们通过遍历灰度图像的每个像素,将其灰度值赋给伪彩色图像的B、G、R三个通道,从而实现了灰度图单色伪彩的效果。最后,我们将灰度图和伪彩色图像显示出来。