python绘制灰度直方图
时间: 2023-10-14 07:23:12 浏览: 174
你可以使用Matplotlib库来绘制灰度直方图。以下是一个示例代码:
```python
import matplotlib.pyplot as plt
import cv2
# 读取灰度图像
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 计算直方图
hist, bins = np.histogram(img.ravel(), 256, [0,256])
# 绘制直方图
plt.hist(img.ravel(), 256, [0,256])
plt.show()
```
这里,我们首先使用OpenCV库读取一张灰度图像。然后,使用Numpy的histogram函数计算直方图。最后,使用Matplotlib的hist函数绘制直方图。可以将该代码放入一个.py文件中并执行,确保你的环境中已经安装了相关的库。
相关问题
python图像绘制灰度直方图
在Python中,可以使用matplotlib库来绘制图像的灰度直方图。首先,你需要安装matplotlib和PIL(Python Imaging Library,现在通常称为Pillow)库。下面是一个简单的示例:
```python
import matplotlib.pyplot as plt
from PIL import Image
# 加载图像
img = Image.open('image_path.jpg') # 替换为你要处理的图片路径
# 将图像转换为灰度
gray_img = img.convert('L')
# 提取像素值并计算频率(直方图)
hist, bins = plt.hist(gray_img.flatten(), bins=256, range=(0, 256), density=True)
# 绘制直方图
plt.xlabel('灰度级')
plt.ylabel('概率')
plt.title('灰度直方图')
plt.plot(bins[:-1], hist)
plt.show()
```
在这个例子中,`gray_img.flatten()`将图像的所有像素值展平成一维数组,然后`plt.hist()`函数计算每个灰度级别的像素出现次数,并生成了直方图。`density=True`表示结果是以概率密度的形式显示。
python绘制灰度图片直方图-opencv+python 统计及绘制直方图
好的,下面是回答:
要绘制灰度图片的直方图,可以使用OpenCV和Python来进行统计和绘制。
首先,需要读取灰度图像,并使用OpenCV的calcHist函数来计算直方图。代码如下:
```
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('image.jpg', 0)
hist = cv2.calcHist([img],[0],None,[256],[0,256])
```
这里使用了calcHist函数来计算输入图像img的灰度直方图,其中[0]表示只统计一个通道,None表示没有使用掩码,[256]表示直方图的bin数量,[0,256]表示像素值范围。
得到直方图后,可以使用matplotlib的plot函数来绘制直方图。代码如下:
```
plt.hist(img.ravel(),256,[0,256])
plt.show()
```
其中img.ravel()是将灰度图像展平成一维数组,256表示bin数量,[0,256]表示像素值范围。
最终的代码如下:
```
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('image.jpg', 0)
# calculate histogram
hist = cv2.calcHist([img],[0],None,[256],[0,256])
# plot histogram
plt.hist(img.ravel(),256,[0,256])
plt.show()
```
通过这个代码,可以绘制出输入灰度图像的直方图。
阅读全文