直方图均衡化代码实现python
时间: 2024-09-22 16:04:56 浏览: 53
基于python对遥感影像直方图均衡化.zip
5星 · 资源好评率100%
直方图均衡化是一种图像增强技术,它通过改变像素值的概率分布来改善图像对比度,使得原本灰暗的部分变得更亮,明亮的部分变得更暗。在Python中,我们可以使用OpenCV库来实现直方图均衡化。以下是基本的代码示例:
```python
import cv2
import numpy as np
def histogram_equalization(image_path):
# 读取图片
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
# 计算直方图
hist, bins = np.histogram(image.flatten(), 256, [0, 256])
# 确定累积分布函数
cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()
# 使用线性插值计算新的像素值
equalized_image = np.interp(image.flatten(), bins[:-1], cdf_normalized).reshape(image.shape)
return equalized_image
# 示例
input_image = 'your_image_path.jpg'
equalized_img = histogram_equalization(input_image)
cv2.imshow('Original Image', input_image)
cv2.imshow('Equalized Image', equalized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个代码中,首先读取图像并转换为灰度图像,然后计算直方图并生成累积分布函数。接着,使用插值将原图像的像素值映射到新范围,得到直方图均衡化的结果。
阅读全文