C++ cv::CLAHE 范例代码
时间: 2024-09-29 08:07:25 浏览: 63
在C++中,`cv::CLAHE` (Contrast Limited Adaptive Histogram Equalization) 是OpenCV库中的一个工具,用于图像局部直方图均衡化,增强对比度,特别是对于那些光照变化大的区域。以下是一个简单的例子,展示了如何在OpenCV中使用`cv::createCLAHE()`函数创建一个`CLAHE`对象,并应用到图像上:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 加载图片
cv::Mat img = cv::imread("path_to_your_image.jpg", cv::IMREAD_GRAYSCALE); // 确保是灰度图像
if (img.empty()) {
std::cout << "Could not open or find the image." << std::endl;
return -1;
}
// 创建CLAHE对象,指定大小(块大小)和亮度限制
int claheSize = 8; // 可调整大小
double clipLimit = 0.05; // 亮度限制
cv::Ptr<cv::CLAHE> clahe = cv::createCLAHE(claheSize, cv::Point(0, 0));
// 对图像进行CLAHE处理
cv::Mat clampedImg;
clahe->apply(img, clampedImg);
// 显示原图和处理后的图
cv::imshow("Original Image", img);
cv::imshow("CLAHE Enhanced Image", clampedImg);
// 等待按键并关闭窗口
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}
```
在这个示例中,`cv::createCLAHE`需要传入一个块大小和一个中心点,表示每个块的区域。`apply`函数则对整个图像进行处理。
阅读全文