如何将 dtype=float 的 numpy NxM 数组显示为纯灰度图像?

2023-12-15

当创建一个numpy数组与dtype=float,使用的呈现方法matplotlib.pyplot.imshow似乎取决于值,因此 0.50 的值不仅仅是 50% 灰度。

使用此代码模板:

import numpy as np
import matplotlib.pyplot as plt
img = np.empty([2, 2])
img[:] = {image}
plt.imshow(img, cmap='gray')
plt.show()

然后是图像[[1.0, 1.0], [0.0, 0.5]]显示为:

enter image description here

但图像[[1.0, 1.0], [1.0, 0.5]],其中仅 0.0 更改为 1.0,显示为:

enter image description here

我原以为 0.5(右下角)在这两种情况下都会显示为 50% 灰色,但由于某种原因,表示方法发生了变化,因此 0.5 的解释有所不同,具体取决于数组中其他元素的值。

那么,如何将 dtype=float 的 numpy NxM 数组显示为纯灰度图像?


您必须修复色标的限制:

plt.imshow(img, cmap='gray',clim=(0,1))

为了更好地了解正在发生的情况,您可以添加一个颜色条,以可视化颜色和数值之间的转换;例如使用以下代码:

fig,ax = plt.subplots()
cax = plt.imshow(img, cmap='gray')
cbar = fig.colorbar(cax)
plt.show()

对两个示例执行此操作立即可以清楚地看出 matplotlib.pyplot 更新了数据的色标范围。因此,两种情况下颜色和数值之间的转换是不同的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 dtype=float 的 numpy NxM 数组显示为纯灰度图像? 的相关文章