opencv 彩色图亮度平衡 c++代码
时间: 2023-07-24 13:38:26 浏览: 148
您可以使用以下代码来实现彩色图的亮度平衡:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat image = imread("input.jpg");
if (image.empty())
{
std::cout << "Could not open or find the image" << std::endl;
return -1;
}
Mat hsv;
cvtColor(image, hsv, COLOR_BGR2HSV);
std::vector<Mat> channels;
split(hsv, channels);
equalizeHist(channels[2], channels[2]);
merge(channels, hsv);
Mat result;
cvtColor(hsv, result, COLOR_HSV2BGR);
imwrite("output.jpg", result);
return 0;
}
```
在这个例子中,我们将输入图像读取到一个Mat对象中。接下来,我们将图像从BGR颜色空间转换为HSV颜色空间。然后,我们将HSV图像分成3个单独的通道,并将亮度通道进行直方图均衡化。最后,我们将3个通道合并回一个图像中,并将其从HSV颜色空间转换回BGR颜色空间。最后,我们将输出图像保存到磁盘上。
阅读全文