【发布时间】:2017-10-07 20:47:55
【问题描述】:
我运行以下代码:
colored = np.empty((299, 299, 3), dtype=float) # dtype=`uint16` doesn't work too!
colored[:, :, 0] = image
colored[:, :, 1] = image
colored[:, :, 2] = image
如果我绘制image(uint16 的二维数组),我可以看到正确的图片。但是,如果我绘制 colored 数组,则会得到以下垃圾图像:
我使用以下代码进行绘图:
import matplotlib.pyplot as plt
plt.imshow(colored, cmap='gray')
plt.show()
当我绘制image 时,它可以工作。当我绘制colored 时,它没有。这是怎么回事,我该如何解决?
【问题讨论】:
-
你使用什么绘图命令?数字看起来对吗?
-
我使用
plt.imshow(colored, cmap='gray')。数字看起来正确!所以,绘图功能出了点问题…… -
但我正在尝试绘制
colored,它应该是float的数组。当我以同样的方式绘制image(uint16的数组)时,它可以工作! -
imshow(colored[:,:,0])怎么样?创建 3d 数组时,您是否对值进行了标准化。imshow表示值应在 0.0 到 1.0 范围内。 -
2D 数组和 0.0-1.0 值的 3D 数组都可以正常工作。但我认为
imshow可以与值为 0..255 的 3 色图像一起使用...
标签: python arrays numpy floating-point type-conversion