opencv 多阶高斯模糊处理亮度不均匀 c++代码
时间: 2023-07-24 19:37:31 浏览: 105
opencv c++代码
以下是使用OpenCV进行多阶高斯模糊处理亮度不均匀的C++代码示例:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 读取图像
Mat image = imread("test.jpg");
// CLAHE增强
Mat gray, enhanced;
cvtColor(image, gray, COLOR_BGR2GRAY);
Ptr<CLAHE> clahe = createCLAHE(3.0, Size(8, 8));
clahe->apply(gray, enhanced);
// 将图像分为多个区域,对每个区域进行单独的高斯模糊处理
Mat blurred;
vector<Mat> channels;
split(enhanced, channels);
for (int i = 0; i < channels.size(); i++)
{
Mat channel = channels[i];
for (int j = 1; j <= 3; j++)
{
Mat temp;
GaussianBlur(channel, temp, Size(0, 0), j * 2 - 1);
addWeighted(channel, 1.5, temp, -0.5, 0, blurred);
}
blurred.copyTo(channels[i]);
}
merge(channels, blurred);
// 显示结果
imshow("Original Image", image);
imshow("Enhanced Image", enhanced);
imshow("Blurred Image", blurred);
waitKey();
return 0;
}
```
在代码中,使用了CLAHE算法对图像进行增强,然后将图像分为多个通道,对每个通道进行不同程度的高斯模糊处理,并将处理结果合并成一幅图像。最终,将原始图像、增强后的图像和处理后的图像显示出来,方便用户对比观察。
阅读全文