我正在尝试获取图像中具有最大像素数的灰度值。我正在使用plt.hist
b, bins, patches = plt.hist(vals, 255)
plt.xlim([0,255])
绘制直方图后,结果为
问题是我从np.argmax(b)
得到的最大索引与图中的视觉最大值不同!为什么?例如,此直方图显示具有最大像素的灰度级别绝对高于150,但argmax
表示其为142。
发布于 2019-08-05 08:04:21
参数255
仅作为垃圾桶的数量进行交互,并没有指定这些垃圾桶落在哪里,这是由matplotlib自动完成的。因此,如果您的最低值是100,最大值是200,那么您将在100,200内“塞满”255个存储箱。请尝试使用plt.hist(vals, bins=np.arange(255))
。这样,每个bin索引将与实际值相对应。另一种选择是使用bins[np.argmax(b)]
来获取最常见的值。
https://stackoverflow.com/questions/57354343
复制相似问题