自适应直方图均衡化 公式
时间: 2025-01-24 21:23:58 浏览: 49
### 自适应直方图均衡化公式
自适应直方图均衡化(Adaptive Histogram Equalization, AHE)是一种用于图像增强的技术,特别适用于改善具有复杂光照条件下的局部对比度。为了防止过度放大噪声,在实际应用中通常采用一种改进版本——带有限制对比度的自适应直方图均衡化(Contrast Limited Adaptive Histogram Equalization, CLAHE)。CLAHE通过将图像划分为多个小区域(称为tiles),并对每个tile单独执行直方图均衡化来实现这一目标。
对于每一个像素\( p \),其灰度值经过CLAHE后的变换可以表示为:
\[
g(p)=H^{-1}\left(\frac{C_{i j}(f(p))}{n_{t}+1}\right)
\]
其中,
-1}() \) 代表累积分布函数(CDF) 的逆运算;
- \( C_{ij}() \) 计算的是第\( i,j \)个tile内的CDF;
- \( n_t \) 则是指定区域内总的像素数量[^2]。
在具体实施过程中,为了避免某些bin内频率过高而导致伪影现象的发生,引入了剪切限幅参数`clipLimit`。当某个bin的高度超过这个阈值时,则会将其高度限制在这个最大允许范围内,并重新分配溢出部分到其他bins上。此外,还定义了一个网格大小`tileGridSize=(M,N)` 来决定如何分割整个图片成不同的子块来进行独立处理。
```python
import cv2
import numpy as np
def clahe(image, clip_limit=3.0, grid_size=(8, 8)):
lab = cv2.cvtColor(image, cv2.COLOR_BGR2LAB)
l, a, b = cv2.split(lab)
# Apply CLAHE on L channel
clahe_obj = cv2.createCLAHE(clipLimit=clip_limit, tileGridSize=grid_size)
cl = clahe_obj.apply(l)
# Merge the CLAHE enhanced L channel back into LAB color space
merged_lab = cv2.merge((cl,a,b))
# Convert from LAB to BGR color space
final_image = cv2.cvtColor(merged_lab, cv2.COLOR_LAB2BGR)
return final_image
```
阅读全文
相关推荐


















