编程画出图像的灰度直方图,均衡化后的灰度直方图
时间: 2024-05-02 14:20:43 浏览: 67
很高兴为您解答问题。可以使用Python中的OpenCV库进行图像处理。以下是代码示例:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读入图像
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() # 归一化
# 绘制灰度直方图和累积直方图
plt.subplot(2, 2, 1)
plt.imshow(img, cmap='gray')
plt.title('Original Image')
plt.subplot(2, 2, 2)
plt.hist(img.flatten(), 256, [0, 256])
plt.title('Histogram')
plt.subplot(2, 2, 3)
plt.plot(cdf_normalized, color='b')
plt.hist(img.flatten(), 256, [0, 256], cumulative=True, normed=True, color='r')
plt.title('Cumulative Histogram')
plt.subplot(2, 2, 4)
equ = cv2.equalizeHist(img) # 均衡化
plt.imshow(equ, cmap='gray')
plt.title('Histogram Equalization')
plt.show()
```
运行后,代码将展示原始图像、灰度直方图、累积直方图和均衡化后的图像灰度直方图。
阅读全文