首页 > 解决方案 > PIL 图像在实际值存在的地方返回零

问题描述

我试图从一些 tiff 图像(恰好是 Landsat 场景)中获取像素值,方法是将它们作为 PIL 图像导入,转换为 numpy 数组,然后进行数学运算/使用数组。但是,在存在真实数据的情况下,似乎某些值被导入为零。感谢您对诊断为什么会发生这种情况的任何帮助。

我用手机相机中的 .jpg 测试了相同的代码,但它没有做同样的事情,所以看起来它可能与图像有关,但我不确定是什么。

im = Image.open("filepath_to_image.tif")
imarray = np.array(im)
plt.imshow(imarray, cmap = 'rainbow')
print(imarray)

您可以在图像的左边缘和下边缘看到零值(以及顶行中的 nan),其中应该有从 0 -1 的浮点数,就像左上角的值一样。

[[0.25185686 0.25185686 0.17598736 ...        nan        nan        nan]
 [0.25185686 0.25185686 0.17598736 ... 0.         0.         0.        ]
 [0.27690288 0.27690288 0.21749623 ... 0.         0.         0.        ]
 ...
 [0.         0.         0.         ... 0.         0.         0.        ]
 [0.         0.         0.         ... 0.         0.         0.        ]
 [0.         0.         0.         ... 0.         0.         0.        ]]

[输入Tiff] 1 [输出Tiff ] 2

https://drive.google.com/open?id=1_Rxj66jc742Z88pbOt_3ZC898kyy9xm8

标签: pythonmatplotlibpython-imaging-libraryimshow

解决方案


推荐阅读