对图像b进行直方图均衡化后得到图像c,在同一个界面上显示图像b,图像b对应的直方图,直方图均衡化后的结果图像c和图像c对应直方图,并给每个图片加上title。
时间: 2024-09-21 13:02:21 浏览: 51
对图像B进行直方图均衡化是为了增强它的对比度,使得图像的信息分布更均匀,从而改善视觉效果。下面是操作流程:
1. **直方图均衡化**:
利用图像处理库(如OpenCV的`cv2.equalizeHist()`函数)对图像B(`img_b`)进行直方图均衡化,生成新的图像C(`img_c = cv2.equalizeHist(img_b)`)。
2. **显示图像及直方图**:
- 显示原始图像B和直方图:`cv2.imshow('Original Image B', img_b, {'title': 'Original Image B Histogram'}); plt.hist(img_b.flatten(), bins='auto'); plt.title('Histogram of Original Image B')`
- 显示直方图均衡化后的图像C:`cv2.imshow('Image C after Equalization', img_c, {'title': 'Image C after Histogram Equalization'})`
- 同样计算图像C的直方图并绘制:`hist_c, bins_c = np.histogram(img_c, bins='auto'); plt.bar(bins_c[:-1], hist_c) ; plt.title('Histogram of Image C')`
3. **等待用户交互**:
`cv2.waitKey(0)`暂停程序,等待用户按键,`cv2.destroyAllWindows()`关闭所有显示的窗口。
```python
# ... (之前已经获取了img_b)
# 直方图均衡化
img_c = cv2.equalizeHist(img_b)
# 显示图像
cv2.imshow('Original Image B', img_b, {'title': 'Original Image B Histogram'})
plt.hist(img_b.flatten(), bins='auto', density=True) # 添加密度直方图
plt.title('Histogram of Original Image B')
plt.show()
cv2.imshow('Image C after Equalization', img_c, {'title': 'Image C after Histogram Equalization'})
# 计算和显示直方图
hist_c, bins_c = np.histogram(img_c, bins='auto')
plt.bar(bins_c[:-1], hist_c)
plt.title('Histogram of Image C')
plt.show()
# 等待用户交互
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文