gpt4 book ai didi

python - 将 RGB 图像数组乘以标量后使用 plt.imshow 获取黑色图

转载 作者:太空狗 更新时间:2023-10-29 22:21:11 24 4
gpt4 key购买 nike

所以我有点困惑为什么会这样。

我有一个二值图像: enter image description here

现在我想将这个二进制图像转换成 RGB 空间,因此我使用 dstack 函数连接第 3 轴

enter image description here

到目前为止一切正常,但现在我必须将 out_image 数组乘以 255 以在 RGB 空间中反射(reflect)白色,这就是问题发生的地方黑色enter image description here

但是如果我绘制另一个随机图像,一切都很好所以这里发生的事情,我也玩过 cmap 但不管是哪种 cmap我用它乘以255

总是黑色

有什么想法吗?

最佳答案

题中问题的解决方案不是将数组乘以255
另一种选择是将图像的数据类型减少为 unsigned int8,
out_image = out_image.astype(np.uint8)

让我解释一下原因:

单 channel 图像可以具有任意值和数据类型。颜色将由要使用的颜色图确定,并且如果需要,可以归一化到某个范围。

enter image description here

相比之下,imshow 假定 3 channel RGB 数组在两个范围内,[0., 1.][0,255]。 (“3 维数组必须是 dtype unsigned byte、unsigned short、float32 或 float64”)。
要使用的范围将由数组的数据类型选择:

  1. float 数组应该在[0., 1.] 范围内,
  2. 整数 数组应在 [0,255] 范围内。另请注意,整数数组的数据类型必须是 int8 而不是 int32。

enter image description here

正如在 RGB 情况下所见,[0,1] 范围内的整数数组保持黑色,以及 [0., 255. ]

关于python - 将 RGB 图像数组乘以标量后使用 plt.imshow 获取黑色图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42044259/

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