opencv显示图片的直方图
时间: 2024-10-10 15:01:29 浏览: 11
在OpenCV库中,你可以使用`cv2.calcHist()`函数来计算图像的直方图,然后使用`cv2.imshow()`或`matplotlib`等工具来可视化结果。以下是基本步骤:
1. **读取图像**:
```python
import cv2
img = cv2.imread('your_image.jpg')
```
2. **计算直方图**:
```python
hist = cv2.calcHist([img], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256]) # 对RGB三个通道分别计算
```
这里,参数 `[0, 1, 2]` 表示对图像的三个颜色通道(RGB)进行操作,`[8, 8, 8]` 是每个通道的bins数,`[0, 256, 0, 256, 0, 256]` 分别是每个通道的范围。
3. **绘制直方图**:
- 使用OpenCV:
```python
plt.imshow(hist, origin='lower', cmap='gray') # 使用matplotlib显示
plt.show()
```
- 或者使用OpenCV直接显示:
```python
if cv2.__version__.startswith("4"):
hist = cv2.cvtColor(hist, cv2.COLOR_HSV2BGR)
cv2.imshow('Histogram', hist)
cv2.waitKey(0)
else:
cv2.imshow('Histogram', hist)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
4. **注意关闭窗口**:
在最后添加`cv2.waitKey(0)`让程序暂停等待用户按下任意键,`cv2.destroyAllWindows()`用于关闭所有OpenCV窗口。
**
阅读全文