再加上均衡化图像的直方图代码
时间: 2024-09-26 19:09:39 浏览: 31
当然,为了展示均衡化图像的直方图,你可以参照原始图像直方图的部分,在均衡化图像后也同样计算其直方图并绘制出来。这里是完整的代码:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图像
image = cv2.imread('image.jpg', 0)
# 直方图均衡化
equ = cv2.equalizeHist(image)
# 计算均衡化图像的直方图
equ_hist, equ_bins = np.histogram(equ.flatten(), 256, [0, 256])
# 绘制均衡化图像的直方图
plt.figure()
plt.plot(equ_bins[:-1], equ_hist, 'b', linewidth=2)
plt.xlim([0, 256])
plt.title('Histogram of Equalized Image')
# 显示原始图像、均衡化图像及其直方图
plt.subplot(121), plt.imshow(image, cmap='gray'), plt.title('Original')
plt.subplot(122), plt.imshow(equ, cmap='gray'), plt.title('Equalized')
plt.figure()
plt.plot(bins[:-1], hist, 'r', linewidth=2), plt.plot(equ_bins[:-1], equ_hist, 'b', linewidth=2)
plt.legend(['Original Histogram', 'Equalized Histogram'])
plt.xlim([0, 256])
plt.xlabel('Pixel Intensity')
plt.ylabel('Frequency')
plt.show()
# 相关问题--
1. 均衡化前后直方图有何区别?
2. 图像直方图在分析图像内容时有哪些作用?
3. 这段代码如何展示了直方图对比的效果?
```
这部分代码增加了均衡化图像的直方图绘制,并将其与原始图像的直方图进行了比较。通过`plt.legend`和`xlim`等特性,清晰地展示了两者之间的差异。
阅读全文