c++opencv提升图像对比度
时间: 2023-07-19 11:09:22 浏览: 111
要提升图像对比度,可以使用以下步骤:
1. 读取图像并将其转换为灰度图像:
```c++
Mat img = imread("image.jpg");
Mat gray;
cvtColor(img, gray, COLOR_BGR2GRAY);
```
2. 计算图像的直方图均衡化:
```c++
Mat hist_equalized;
equalizeHist(gray, hist_equalized);
```
3. 将均衡化后的图像与原始图像进行比较,选择较好的图像:
```c++
Mat result;
double alpha = 1.5; // 提升对比度的参数
addWeighted(gray, alpha, hist_equalized, 1 - alpha, 0, result);
```
其中,alpha是提升对比度的参数,可以根据需要进行调整。最后将结果保存:
```c++
imwrite("result.jpg", result);
```
完整代码如下:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("image.jpg");
Mat gray;
cvtColor(img, gray, COLOR_BGR2GRAY);
Mat hist_equalized;
equalizeHist(gray, hist_equalized);
Mat result;
double alpha = 1.5; // 提升对比度的参数
addWeighted(gray, alpha, hist_equalized, 1 - alpha, 0, result);
imwrite("result.jpg", result);
return 0;
}
```
阅读全文