gpt4 book ai didi

Python:numpy.histogram 绘图

转载 作者:行者123 更新时间:2023-12-01 02:07:58 28 4
gpt4 key购买 nike

我想测量 16 位图像中的像素强度。因此,我制作了一个 numpy 直方图,显示像素数与灰度值从 0 到 65535(16 位)的关系。我用的是

hist= numpy.histogram(grayscaleimage.ravel(), 65536, [0, 65536])

之后,我测量图像的整体强度(这意味着像素数 * 每个像素值的总和):

Intensity = 0
for i in range(len(hist[0])):
Intensity += hist[0][i]*hist[1][i]
print(Intesity)

现在我想查看我的直方图。尽管我有所需的值,但我不知道如何绘制 hist 。有人可以帮我解决这个问题吗?

最佳答案

您可以直接使用matplotlib来实现此目的:

import matplotlib.pyplot as plt
plt.hist(grayscaleimage.ravel(), bins=np.linspace(0, 65536, 1000))
plt.show()

或者像您已经做的那样使用 numpy 并绘制条形图。但是,您必须自己正确设置条形的宽度,并跳过最后一个 bin 条目,使其与直方图具有相同的尺寸:

import numpy as np
import matplotlib.pyplot as plt

hist, bin_edges = np.histogram(grayscaleimage.ravel(), bins = np.linspace(0, 65536, 1000))
plt.bar(bin_edges[:-1], hist, width=65536./1000)
plt.show()

我在这里只使用了 1000 个 bin,但您也可以根据图像的大小选择更多。

PS:如果您想要总强度,则不必迭代所有箱。只需将图像中的所有像素值相加 np.sum(grayscaleimage),即可获得更准确的结果。

关于Python:numpy.histogram 绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48880363/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com