编写一个python程序(不用cv库),要求如下 1. 读入给定灰度图像并显示出来 ;2. 统计其归一化的直方图,并用柱状图的形式显示出来 ;3. 显示均衡化后的图像; 4. 统计均衡化后的直方图,并用柱状图的形式显示出来
时间: 2024-03-10 07:50:08 浏览: 51
python 对一幅灰度图像进行直方图均衡化
好的,这是一个比较基础的图像处理任务,我可以帮你实现。以下是代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
# 读入灰度图像并显示
img = plt.imread('image.jpg')
plt.imshow(img, cmap='gray')
plt.show()
# 统计直方图并用柱状图显示
hist, bins = np.histogram(img.flatten(), 256, [0, 256])
plt.bar(bins[:-1], hist, width=1)
plt.show()
# 均衡化图像并显示
cdf = hist.cumsum()
cdf_normalized = cdf / cdf.max()
img_equalized = np.interp(img.flatten(), bins[:-1], cdf_normalized)
img_equalized = img_equalized.reshape(img.shape)
plt.imshow(img_equalized, cmap='gray')
plt.show()
# 统计均衡化后的直方图并用柱状图显示
hist_equalized, bins_equalized = np.histogram(img_equalized.flatten(), 256, [0, 256])
plt.bar(bins_equalized[:-1], hist_equalized, width=1)
plt.show()
```
你只需要将代码中的`image.jpg`替换成你想要处理的图像,然后运行即可。代码中的注释已经解释了每一步的具体操作,如果你有任何疑问,可以随时问我。
阅读全文