opencv- CLAHE 有限对比适应性直方图均衡化

CLAHE(Contrast Limited Adaptive Histogram Equalization)是一种对比度有限的自适应直方图均衡化技术,它能够提高图像的对比度而又避免过度增强噪声。

在OpenCV中,cv2.createCLAHE() 函数用于创建CLAHE对象,然后可以使用该对象的 apply() 方法来对图像进行CLAHE均衡化,它在局部区域内对图像进行直方图均衡化,从而提高图像对比度而避免噪声过度增强。

函数的基本语法如下:

clahe = cv2.createCLAHE(clipLimit, tileGridSize)

参数说明:

  • clipLimit: 对比度限制。对比度超过该值的像素将被截断,以防止过度增强对比度,默认为 40.0
  • tileGridSize: 图像被分割为多个小块(tiles),每个小块内进行局部直方图均衡化。tileGridSize 定义了每个小块的大小,默认为 (8, 8)。

创建CLAHE对象后,可以使用该对象的 apply() 方法对图像进行CLAHE均衡化。

示例代码:


import cv2import matplotlib.pyplot as plt

# 读取灰度图像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\2.jpg", cv2.IMREAD_GRAYSCALE)
# 创建CLAHE对象
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
# 进行CLAHE均衡化
clahe_img = clahe.apply(img)
# 绘制原始图像和CLAHE均衡化后的图像
plt.figure(figsize=(8, 4))
plt.subplot(1, 2, 1)
plt.imshow(img, cmap='gray')
plt.title('Original Image')
plt.subplot(1, 2, 2)
plt.imshow(clahe_img, cmap='gray')
plt.title('CLAHE Image')
plt.show()
# 显示原始图像和CLAHE均衡化后的图像
cv2.imshow('Original Image', img)
cv2.imshow('CLAHE Image', clahe_img)

# 等待用户按下任意键
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述
在这里插入图片描述

在这个示例中,通过调整 clipLimittileGridSize 参数,你可以控制CLAHE的效果。CLAHE通常在需要提高图像对比度的情况下使用,特别是在局部对比度不均匀的图像上。

CLAHE在局部区域内进行直方图均衡化,这有助于避免在全局均衡化中出现的过度增强噪声的问题。

### 全局与局部直方图均衡化概述 #### 定义 全局直方图均衡化是对整幅图像的灰度级进行变换,使得输出图像具有均匀分布的灰度值[^2]。这种方法通过调整整个图像的亮度和对比度来增强图像质量。 局部直方图均衡化则是针对图像的不同子区域分别执行直方图均衡化操作,从而更好地适应各部分的具体特性并提高这些特定区域内的可见性[^1]。 #### 工作原理差异 对于全局直方图均衡化而言,在计算累积概率密度函数(CDF)时考虑的是整张图片的信息;而对于局部版本,则是在每一个小窗口内独立完成这一过程,因此能更精细地控制各个位置上的像素强度变化[^3]。 ```csharp using OpenCvSharp; // 全局直方图均衡化示例代码 public static Mat ApplyGlobalHistogramEqualization(Mat inputImage) { Cv2.EqualizeHist(inputImage, inputImage); return inputImage; } // 局部直方图均衡化 (CLAHE) 示例代码 public static Mat ApplyLocalHistogramEqualization(Mat inputImage) { var clahe = Cv2.CreateCLAHE(); var result = clahe.Apply(inputImage); return result; } ``` #### 应用场景比较 当面对光照条件较为一致的大面积场景时,比如风景照中的天空部分或者室内环境的整体照明下拍摄的人像照片,采用全局方法往往可以获得满意的结果。然而如果存在复杂多变的小范围光影效果——如森林内部透过树叶间隙洒下的斑驳阳光所形成的阴影区以及明亮处共存的画面,则更适合运用局部技术来进行优化处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI自修室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值