灰度直方图统计不使用已知函数
时间: 2024-02-25 16:53:59 浏览: 52
灰度直方图统计
3星 · 编辑精心推荐
好的,以下是不使用已知函数完成灰度直方图统计的代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
# 读取图片并转为灰度图像
img = plt.imread("image.png")
gray = np.dot(img[...,:3], [0.299, 0.587, 0.114])
# 统计灰度直方图
hist = np.zeros((256,), dtype=int)
for i in range(gray.shape[0]):
for j in range(gray.shape[1]):
hist[int(gray[i,j])] += 1
# 绘制灰度直方图
x = np.arange(256)
plt.bar(x, hist, width=1)
plt.show()
```
其中,使用`np.zeros`函数创建一个长度为256的数组`hist`,用于存储灰度直方图的统计结果,数组的每个元素都初始化为0。接下来使用两个for循环遍历灰度图像的每个像素,然后根据每个像素的灰度值将`hist`数组中相应的元素加1,最终得到灰度直方图的统计结果。最后使用`plt.bar`函数绘制灰度直方图。
阅读全文