python统计灰度图像中每行像素不为零的点的个数,绘制成图想
时间: 2024-03-13 10:42:57 浏览: 91
可以使用以下代码实现:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取灰度图像
img = cv2.imread('gray_image.png', cv2.IMREAD_GRAYSCALE)
# 统计每行像素不为零的点的个数
row_sum = np.sum(img != 0, axis=1)
# 绘制图像
plt.plot(row_sum)
plt.show()
```
这里假设灰度图像文件名为`gray_image.png`,首先使用OpenCV库的`imread()`函数读取灰度图像。然后使用NumPy库的`sum()`函数统计每行像素不为零的点的个数,`axis=1`参数指定对行进行求和。最后使用Matplotlib库的`plot()`函数绘制图像,`show()`函数显示图像。
相关问题
python统计二值图像中每行像素不为零的点的个数,绘制成图像
可以使用以下代码实现:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取二值图像
img = cv2.imread('binary_image.png', cv2.IMREAD_GRAYSCALE)
# 将二值图像转换为布尔类型
img_bool = img.astype(np.bool)
# 统计每行像素不为零的点的个数
row_sum = np.sum(img_bool, axis=1)
# 绘制图像
plt.plot(row_sum)
plt.show()
```
这里假设二值图像文件名为`binary_image.png`,首先使用OpenCV库的`imread()`函数读取灰度图像。然后使用NumPy库的`astype()`函数将图像数据类型转换为布尔类型,像素值为0的点将被转换为False,像素值不为0的点将被转换为True。接着使用NumPy库的`sum()`函数统计每行像素不为零的点的个数,`axis=1`参数指定对行进行求和。最后使用Matplotlib库的`plot()`函数绘制图像,`show()`函数显示图像。
读取黑白图像,遍历每行每列,将白色点的个数绘制成直方图
好的,我来解答你的问题。
首先,你可以使用Python的Pillow库来读取黑白图像。然后,你需要遍历每行每列,并计算每行每列中白色点的个数。最后,将这些白色点的个数绘制成直方图。
下面是一个代码示例:
```python
from PIL import Image
import matplotlib.pyplot as plt
# 读取黑白图像
im = Image.open("image.png").convert("L")
# 获取图像宽度和高度
width, height = im.size
# 初始化直方图数据
hist = [0] * width
# 遍历每列,计算白色点的个数
for x in range(width):
count = 0
for y in range(height):
if im.getpixel((x, y)) == 255:
count += 1
hist[x] = count
# 绘制直方图
plt.bar(range(width), hist)
plt.show()
```
在这个示例中,我们首先使用Pillow库读取了一张黑白图像,并将其转换为灰度图像。然后,我们遍历了每列,并计算了每列中白色点的个数。最后,我们使用Matplotlib库绘制了直方图。
希望这个示例能够帮助到你!如果你还有其他问题,可以继续问我。
阅读全文