Python open cv 直方图
时间: 2023-07-06 22:04:19 浏览: 106
在 Python 中使用 OpenCV 库可以很方便地生成图像的直方图,具体步骤如下:
1. 导入 OpenCV 库和 matplotlib 库
```python
import cv2
import matplotlib.pyplot as plt
```
2. 读取图像并转换为灰度图像
```python
img = cv2.imread('image.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
```
3. 计算直方图
```python
hist = cv2.calcHist([gray_img],[0],None,[256],[0,256])
```
其中,第一个参数为图像,第二个参数为通道,对于灰度图像只有一个通道,所以为 0;第三个参数为掩膜,一般为 None;第四个参数为直方图的大小,这里为 256;最后一个参数为像素值范围,这里为 0 到 255。
4. 绘制直方图
```python
plt.hist(gray_img.ravel(),256,[0,256])
plt.show()
```
其中,第一个参数为像素值,需要使用 ravel() 函数将图像数组变成一维数组;第二个参数为直方图的大小,这里为 256;最后一个参数为像素值范围,这里为 0 到 255。
完整代码如下:
```python
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('image.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
hist = cv2.calcHist([gray_img],[0],None,[256],[0,256])
plt.hist(gray_img.ravel(),256,[0,256])
plt.show()
```
运行代码后即可显示图像的直方图。
阅读全文