c++ 编写CLAHE
时间: 2023-09-03 07:12:09 浏览: 143
CLAHE(Contrast Limited Adaptive Histogram Equalization),即对比度受限自适应直方图均衡化,是一种用于图像增强的算法。下面是一个基于C++的CLAHE实现:
```cpp
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
Mat src = imread("lena.png", IMREAD_GRAYSCALE);
Mat dst;
int clipLimit = 4;
int gridSize = 8;
int bins = 256;
float alpha = 0.5f;
// 计算CLAHE
Ptr<CLAHE> clahe = createCLAHE(clipLimit, Size(gridSize, gridSize));
clahe->setClipLimit(clipLimit);
clahe->setTilesGridSize(Size(gridSize, gridSize));
clahe->setNBins(bins);
clahe->setClipLimit(alpha);
clahe->apply(src, dst);
// 显示结果
imshow("Original Image", src);
imshow("CLAHE Image", dst);
waitKey(0);
return 0;
}
```
首先,读取图像并将其转换为灰度图像。然后设置CLAHE的参数,包括剪切限制(clipLimit)、瓦片大小(gridSize)、直方图中的bin数(bins)和剪切限制的alpha值。接着,计算CLAHE并将其应用于原始图像上,最后显示结果。
阅读全文