所以我对为什么会发生这种情况感到有些困惑。
现在我想将这个二进制图像转换为RGB空间,因此我使用dstack
函数连接第3轴
到目前为止一切正常,但现在我必须将out_image
数组乘以255
以反映RGB空间中的白色,这就是问题发生的地方所有变为黑色
但是如果我绘制另一张随机图像,一切都很好,所以这里发生的事情,我也玩过cmap
,但无论我使用什么样的cmap
它总是结果乘以255
有什么想法吗?
答案 0 :(得分:9)
问题中的问题解决方案是不要将数组乘以255
。
另一种选择是将图像的数据类型减少为unsigned int8,
out_image = out_image.astype(np.uint8)
让我解释原因:
单通道图像可以具有任意值和数据类型。颜色将由要使用的色彩图确定,并且如果需要,则标准化为特定范围。
相比之下,imshow
假定3通道RGB阵列分为两个范围[0., 1.]
或[0,255]
。 (“三维数组必须是dtype无符号字节,unsigned short,float32或float64”)
要使用的范围将由数组的数据类型选择: