gpt4 book ai didi

python - 为什么 matplotlib imshow() 和 show() 函数根据图像是作为 uint8 还是 in64 读取,以不同的配色方案显示图像?

转载 作者:行者123 更新时间:2023-11-30 22:33:04 25 4
gpt4 key购买 nike

根据我读取图像的方式(选项 1 或选项 2),图像在打印时显示有所不同。这是为什么?

选项1

image = np.array(plt.imread('fixed_image.jpg'), dtype='int64')[:, :, 0:3]

选项2

image = np.array(plt.imread('fixed_image.jpg'), dtype='uint8')[:, :, 0:3]

打印

plt.imshow(image)
plt.show()

最佳答案

我认为imshow documentation很清楚:

X : array_like, shape (n, m) or (n, m, 3) or (n, m, 4)
Display the image in X to current axes. X may be an array or a PIL image. If X is an array, it can have the following shapes and types:

  • MxN – values to be mapped (float or int)
  • MxNx3 – RGB (float or uint8)
  • MxNx4 – RGBA (float or uint8)

The value for each component of MxNx3 and MxNx4 float arrays should be in the range 0.0 to 1.0.

这意味着您可以提供 0.1. 之间的浮点值数组,或 0 之间的无符号整数值数组和255

没有记录如果使用'int64'会发生什么。因此,任何事情都可能发生,从不需要的图像上的错误到预期的输出。

为了解释您的实际结果,需要了解操作系统、Python 版本、操作系统和 Python 的位深度、您使用的 numpy 和 matplotlib 版本。也可能是您读入的实际图像。

关于python - 为什么 matplotlib imshow() 和 show() 函数根据图像是作为 uint8 还是 in64 读取,以不同的配色方案显示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45259493/

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