opencv用python环境,找个对比度低的图片,显示其直方图并用直方图均衡化提高其对比度
时间: 2024-03-11 18:50:25 浏览: 11
好的,以下是回答:
首先,需要安装 OpenCV 库和 matplotlib 库,可以使用 pip install opencv-python 和 pip install matplotlib 命令进行安装。
然后,可以使用以下代码加载图片并显示其直方图:
```python
import cv2
from matplotlib import pyplot as plt
# 读取图片
img = cv2.imread('image.jpg', 0)
# 显示原始图片
plt.subplot(121)
plt.imshow(img, cmap='gray')
plt.title('Original Image')
# 显示直方图
plt.subplot(122)
plt.hist(img.ravel(), 256, [0,256])
plt.title('Histogram')
plt.show()
```
其中,img = cv2.imread('image.jpg', 0) 读取灰度图片,并使用 plt.imshow(img, cmap='gray') 显示灰度图片。同时,使用 plt.hist(img.ravel(), 256, [0,256]) 绘制直方图。
接下来,可以使用以下代码进行直方图均衡化:
```python
# 直方图均衡化
equ = cv2.equalizeHist(img)
# 显示均衡化后的图片和直方图
plt.subplot(121)
plt.imshow(equ, cmap='gray')
plt.title('Equalized Image')
plt.subplot(122)
plt.hist(equ.ravel(), 256, [0,256])
plt.title('Histogram after Equalization')
plt.show()
```
其中,cv2.equalizeHist(img) 对原始图片进行直方图均衡化,得到均衡化后的图片。然后,使用 plt.imshow(equ, cmap='gray') 显示均衡化后的图片,使用 plt.hist(equ.ravel(), 256, [0,256]) 绘制均衡化后的直方图。
这样,就可以对比度低的图片进行直方图均衡化,提高其对比度了。