Python:将float32图像读入numpy数组

Python:将float32图像读入numpy数组,python,image,numpy,python-imaging-library,geotiff,Python,Image,Numpy,Python Imaging Library,Geotiff,我有一些GeoTiff图像,我相信是float32图像,我想用python阅读它们 我所尝试的: def load_save_test(filename): import numpy as np import Image from shutil import copyfile copyfile(filename, "tile.tif") arr= np.asarray(Image.open(filename)) print 'np.count_

我有一些GeoTiff图像,我相信是float32图像,我想用python阅读它们

我所尝试的:

def load_save_test(filename):
    import numpy as np
    import Image
    from shutil import copyfile

    copyfile(filename, "tile.tif")

    arr= np.asarray(Image.open(filename))
    print 'np.count_nonzero(arr)', np.count_nonzero(arr)
    img = Image.fromarray(arr)
    img.save('tile_pil.tiff')
但是在我通过ImageJ(支持float32图像)打开
tile.tif
tile_pil.tif
之后,我可以看到一些不同

我还检查了加载后非零的数量:
np.count\u非零(arr)3

那么这个问题的原因是什么呢

原始图像:

如果您使用的测试图像不是全黑的,会发生什么情况?如果可能,请在帖子中加入.tif文件,以便我可以尝试与您一起调试吗?:)@AlexandreKempf@mrglud当我用EyeOfGnome打开文件时,这是ubuntu上的经典图像查看器,我可以看到带有透明背景的彩色点和白色点。这与使用图像查看器显示的完全不同。当我将它保存到png(使用EyeOfNome)中时,它也会在python中给出这些要点。ImageJ给了我和你一样的结果,如果我把它转换成png,我会在python中得到一个完美的零矩阵。如果你想要一个黑色的正方形,我建议用ImageJ将tif图像转换成png,如果这不是什么大问题:)如果你使用的测试图像不是全黑的,会发生什么?如果可能的话,请在你的帖子中加入.tif文件,所以我可以试着和你一起调试吗?:)@AlexandreKempf@mrglud当我用EyeOfGnome打开文件时,这是ubuntu上的经典图像查看器,我可以看到带有透明背景的彩色点和白色点。这与使用图像查看器显示的完全不同。当我将它保存到png(使用EyeOfNome)中时,它也会在python中给出这些要点。ImageJ给了我和你一样的结果,如果我将其转换为png,我会在python中获得一个完美的零矩阵。如果你希望得到一个黑色正方形,我建议使用ImageJ将tif图像转换为png,如果这不是什么大问题:)