HE直方图均衡化原理
时间: 2025-02-04 20:18:50 浏览: 101
### HE直方图均衡化原理
#### 原理概述
直方图均衡化(Histogram Equalization, HE)是一种用于增强图像对比度的技术。其核心思想在于重新分配像素的灰度值,使这些灰度值在整个可能范围内尽可能均匀分布[^1]。
具体来说,在理想情况下,经过处理后的图像应该具有平坦的直方图,即每个灰度级出现的概率相等。这可以通过累积分布函数(CDF)映射原图中的各灰阶到新的灰阶来达成。CDF定义如下:
\[ CDF(i)=\sum_{j=0}^{i} p(j), \quad i=0,1,...,L-1 \]
其中 \(p(j)\) 表示第 j 个灰度级别的概率密度,\( L \) 是总的灰度级别数。对于8位灰度图像而言,\( L = 256 \)[^4]。
#### 实现过程
为了实现这一目标,通常按照以下几个方面来进行计算:
1. **构建原始图像的直方图**:统计各个灰度等级上像素的数量;
2. **计算累计分布频率**:基于上述得到的直方图数据求取每一个灰度值对应的累加比例;
3. **应用线性拉伸公式**:利用所得的比例关系对原有像素值做变换,形成新图片;
4. **生成最终结果**:完成以上步骤之后即可获得经由HE优化过的版本[^2]。
下面是Python环境下简单的HE算法实现代码片段:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
def hist_equalize(image_path):
img = cv2.imread(image_path, 0)
# 计算并绘制原始图像直方图
plt.hist(img.ravel(), bins=256, range=[0, 256])
plt.show()
equ = cv2.equalizeHist(img)
# 显示均衡化后的图像及其直方图
res = np.hstack((img, equ))
cv2.imshow('Equalized Image', res)
plt.figure()
plt.hist(equ.ravel(), bins=256, range=[0, 256], color='r')
plt.title("After Histogram Equalization")
plt.show()
hist_equalize('your_image.png') # 替换为实际路径名
```
此段脚本首先读入一张灰度模式下的输入文件,接着调用了OpenCV库内的`equalizeHist()` 函数执行标准形式上的直方图均衡操作,并最后展示了处理前后的视觉差异以及相应的直方图表征。
阅读全文
相关推荐




















