python图像直方图、获取每一个柱的个数
时间: 2024-02-24 22:59:56 浏览: 19
要获取图像的直方图和每一个柱的个数,可以使用Python的OpenCV库。以下是一个简单的代码示例:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读取图像
img = cv2.imread('image.jpg', 0)
# 计算直方图
hist, bins = np.histogram(img.ravel(), 256, [0, 256])
# 绘制直方图
plt.hist(img.ravel(), 256, [0, 256])
plt.show()
# 输出每一个柱的个数
for i in range(len(hist)):
print("Bin ", i, ": ", hist[i])
```
这个代码会读取名为'image.jpg'的图像,计算并绘制它的直方图,并且输出每一个柱的个数。你可以根据自己的需求修改代码中的图像名称和柱的数量。
相关问题
python实现图像直方图的显示和计算
图像直方图是用于描述图像中像素值分布情况的一种统计方法。在Python中,可以使用OpenCV库实现图像直方图的显示和计算。
以下是一个简单的示例代码:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图像
img = cv2.imread('lena.jpg', 0)
# 计算直方图
hist, bins = np.histogram(img.ravel(), 256, [0, 256])
# 绘制直方图
plt.hist(img.ravel(), 256, [0, 256])
plt.show()
```
首先,使用cv2.imread()函数读取图像。这里使用的是灰度图像,所以第二个参数设置为0。
然后,使用np.histogram()函数计算图像的直方图。该函数返回两个数组:hist表示直方图,bins表示直方图的分bin。
最后,使用matplotlib.pyplot库的hist()函数绘制直方图。其中,第一个参数是待绘制的数据,这里使用img.ravel()将图像展成一维数组;第二个参数是bin的个数,这里设置为256;第三个参数是bin的范围,这里设置为[0, 256]。
运行代码后,将会显示图像的直方图。
python统计二值图像中每行像素不为零的点的个数,绘制成直方图
可以使用Python中的OpenCV库来实现这个任务。以下是一个简单的代码示例,它会读取一个二值图像文件,计算每行像素不为零的点的个数,并将结果绘制成直方图:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取二值图像文件
img = cv2.imread('binary_image.png', cv2.IMREAD_GRAYSCALE)
# 计算每行像素不为零的点的个数
row_sums = np.sum(img != 0, axis=1)
# 绘制直方图
plt.hist(row_sums, bins=50)
# 显示图像
plt.show()
```
在这个代码中,`cv2.imread`函数用于读取二值图像文件,`np.sum`函数用于计算每行像素不为零的点的个数,`plt.hist`函数用于绘制直方图,`plt.show`函数用于显示图像。你可以将`'binary_image.png'`替换成你自己的二值图像文件名。