根据我读取图像的方式(选项 1 或选项 2),打印时图像的显示方式不同。这是为什么?
选项1
image = np.array(plt.imread('fixed_image.jpg'), dtype='int64')[:, :, 0:3]
Run Code Online (Sandbox Code Playgroud)
选项 2
image = np.array(plt.imread('fixed_image.jpg'), dtype='uint8')[:, :, 0:3]
Run Code Online (Sandbox Code Playgroud)
印刷
plt.imshow(image)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我认为imshow文档对此非常清楚:
X : array_like, shape (n, m) or (n, m, 3) or (n, m, 4)
将 X 中的图像显示到当前轴。X 可以是数组或 PIL 图像。如果 X 是数组,则它可以具有以下形状和类型:
- MxN – 要映射的值(浮点数或整数)
- MxNx3 – RGB(浮点数或 uint8)
- MxNx4 – RGBA(浮点数或 uint8)
MxNx3 和 MxNx4 浮点数组的每个组件的值应在 0.0 到 1.0 的范围内。
这意味着你可以提供之间的值的float数组0.和1.值之间的无符号整数数组,或0和255。
如果使用'int64'没有记录会发生什么。因此,任何事情都可能发生,从不想要的图像上的错误到预期的输出。
为了解释您的实际结果,您需要知道操作系统、python 版本、操作系统和 python 的位深度、您使用的 numpy 和 matplotlib 版本。也可能是您读入的实际图像。
| 归档时间: |
|
| 查看次数: |
6216 次 |
| 最近记录: |