opencv饱和度矫正 c++代码
时间: 2023-07-09 19:40:26 浏览: 183
下面是使用OpenCV实现饱和度矫正的C++代码:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
Mat saturate_correction(Mat img, float alpha, float beta)
{
Mat output_image = Mat::zeros(img.size(), img.type());
for (int y = 0; y < img.rows; y++)
{
for (int x = 0; x < img.cols; x++)
{
for (int c = 0; c < img.channels(); c++)
{
output_image.at<Vec3b>(y, x)[c] = saturate_cast<uchar>(alpha*(img.at<Vec3b>(y, x)[c]) + beta);
}
}
}
return output_image;
}
int main()
{
Mat image = imread("image.jpg");
Mat corrected_image = saturate_correction(image, 1.5, 0); //alpha = 1.5, beta = 0
imshow("Original Image", image);
imshow("Corrected Image", corrected_image);
waitKey(0);
return 0;
}
```
这段代码首先定义了一个`saturate_correction`函数,该函数采用输入图像、缩放因子alpha和偏移因子beta作为参数,并返回经过饱和度矫正后的图像。然后在`main`函数中,加载输入图像并应用`saturate_correction`函数来处理该图像。最后,通过OpenCV的`imshow`函数显示原始图像和矫正后的图像,并通过`waitKey`等待用户按下按键。
阅读全文