图像灰度直方图均衡化python
时间: 2023-07-08 07:55:44 浏览: 59
OpenCV利用python来实现图像的直方图均衡化
好的,下面是图像灰度直方图均衡化的Python代码示例:
```python
import cv2
import numpy as np
# 读取图片
img = cv2.imread('image.jpg', 0)
# 计算灰度直方图
hist, bins = np.histogram(img.flatten(), 256, [0, 256])
# 计算累积分布函数
cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()
# 进行直方图均衡化
img_eq = np.interp(img.flatten(), bins[:-1], cdf_normalized).reshape(img.shape)
# 显示原图和均衡化后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Equalized Image', img_eq)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码中,我们首先使用`cv2.imread()`函数读取一张灰度图像,然后使用`np.histogram()`函数计算图像的灰度直方图。接着,我们计算图像的累积分布函数,并将其归一化。最后,我们使用`np.interp()`函数对原图像进行直方图均衡化,并将处理后的图像保存在`img_eq`中。最后,我们使用`cv2.imshow()`函数分别显示原图和均衡化后的图像。
阅读全文