opencv自动矫正饱和度 c++代码
时间: 2023-07-09 17:40:26 浏览: 143
C++基于OpenCV的鱼眼相机的图像矫正源码+使用文档+全部资料(优秀项目).zip
5星 · 资源好评率100%
下面是使用OpenCV实现自动饱和度矫正的C++代码:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
Mat automatic_saturation_correction(Mat img)
{
Mat hsv_image;
cvtColor(img, hsv_image, COLOR_BGR2HSV); //将图像转换为HSV颜色空间
std::vector<Mat> hsv_channels;
split(hsv_image, hsv_channels); //分离H、S、V三个通道
equalizeHist(hsv_channels[1], hsv_channels[1]); //对饱和度通道进行直方图均衡化
merge(hsv_channels, hsv_image); //合并三个通道
Mat output_image;
cvtColor(hsv_image, output_image, COLOR_HSV2BGR); //将图像转换回BGR颜色空间
return output_image;
}
int main()
{
Mat image = imread("image.jpg");
Mat corrected_image = automatic_saturation_correction(image);
imshow("Original Image", image);
imshow("Corrected Image", corrected_image);
waitKey(0);
return 0;
}
```
这段代码首先定义了一个`automatic_saturation_correction`函数,该函数采用输入图像作为参数,将图像转换为HSV颜色空间,并对饱和度通道进行直方图均衡化。然后,将三个通道合并,并将图像转换回BGR颜色空间。最后,在`main`函数中,加载输入图像并应用`automatic_saturation_correction`函数来处理该图像。最后,通过OpenCV的`imshow`函数显示原始图像和矫正后的图像,并通过`waitKey`等待用户按下按键。
阅读全文