编写python程序,完成对给定灰度图像的均衡化 要求 1. 读入给定灰度图像并显示出来 2. 统计其归一化的直方图,并用柱状图的形式显示出来 3. 显示均衡化后的图像 4. 统计均衡化后的直方图,并用柱状图的形式显示出来
时间: 2024-03-10 22:49:50 浏览: 88
好的,我可以为您提供这个Python程序的实现。需要用到OpenCV和matplotlib库,您可以通过pip命令安装。
```python
import cv2
import matplotlib.pyplot as plt
# 读入灰度图像并显示
img = cv2.imread('gray_img.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('Original Image', img)
cv2.waitKey(0)
# 统计归一化直方图并绘制柱状图
hist, bins = cv2.calcHist([img], [0], None, [256], [0, 256])
plt.hist(img.ravel(), 256, [0, 256])
plt.title('Normalized Histogram')
plt.show()
# 进行直方图均衡化并显示
equ = cv2.equalizeHist(img)
cv2.imshow('Equalized Image', equ)
cv2.waitKey(0)
# 统计均衡化后的直方图并绘制柱状图
hist, bins = cv2.calcHist([equ], [0], None, [256], [0, 256])
plt.hist(equ.ravel(), 256, [0, 256])
plt.title('Equalized Histogram')
plt.show()
cv2.destroyAllWindows()
```
请将代码中的`gray_img.jpg`替换成您自己的灰度图像文件名,并将其与代码文件放在同一目录下。执行代码后,将会依次显示原始图像、归一化直方图、均衡化后的图像和均衡化后的直方图。
阅读全文