自适应直方图均衡化公式
时间: 2023-06-20 16:08:23 浏览: 148
自适应直方图均衡化(Adaptive Histogram Equalization, AHE)是一种用于图像增强的方法,它能够增强图像的对比度,同时保持图像的整体亮度和色彩平衡。其基本思想是将图像分成若干个小区域,对每个小区域进行直方图均衡化,从而达到全局的直方图均衡化效果。其公式如下:
1. 将原图像分成若干个大小相等的小区域(例如 8×8、16×16 等)。
2. 对于每个小区域,计算其直方图,并进行直方图均衡化,得到均衡化后的小区域。
3. 将均衡化后的小区域拼接成新的图像。
具体的自适应直方图均衡化算法还包括了对每个小区域的大小、对比度增强程度等参数的控制,以及对边界处小区域的处理等。
相关问题
自适应直方图均衡化 公式
### 自适应直方图均衡化公式
自适应直方图均衡化(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
```
限制对比度自适应直方图均衡化公式
限制对比度自适应直方图均衡化(CLAHE)的公式如下:
首先,将图像分成若干个小区域,每个小区域内进行直方图均衡化,得到均衡化后的像素值:
$$
f_{i,j}^{'} = \frac{L-1}{N} \sum_{k=0}^{N-1} h_k
$$
其中,$L$ 表示像素灰度级数,$N$ 表示小区域内像素总数,$h_k$ 表示灰度级为 $k$ 的像素数量。
然后,对每个小区域内的像素进行限制对比度处理,使得像素值分布在一个较小的范围内。具体做法是,计算小区域内像素值的累积分布函数(CDF),并将其限制在一个预设的阈值范围内:
$$
F_{i,j}(k) = \sum_{m=0}^{k}h_m \\
F_{i,j}^{'}(k) = \begin{cases}
F_{i,j}(k) & F_{i,j}(k) \leq T \\
T & F_{i,j}(k) > T
\end{cases}
$$
其中,$T$ 表示限制的阈值,$F_{i,j}(k)$ 表示灰度级为 $k$ 的像素在小区域 $(i,j)$ 内的累积分布函数,$F_{i,j}^{'}(k)$ 表示限制后的累积分布函数。
最后,根据限制后的累积分布函数,将小区域内的像素值进行映射:
$$
f_{i,j}^{''} = \frac{F_{i,j}^{'}(f_{i,j}^{'})}{N} \times (L-1)
$$
其中,$f_{i,j}^{''}$ 表示限制对比度后的像素值,$f_{i,j}^{'}$ 表示均衡化后的像素值。
阅读全文
相关推荐













