python - 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. ]]
https://drive.google.com/open?id=1_Rxj66jc742Z88pbOt_3ZC898kyy9xm8
解决方案
推荐阅读
- javascript - 控制台不显示数据
- colors - Meshlab 非分散顶点着色
- c++ - 如何在 C++20 中获得一个运行良好的生成器类模板?
- android - 颤振:未处理异常:断言失败:布尔表达式不能为空
- components - 这是哪个IC元件?
- javascript - 在数据表中添加 Excel 按钮时不显示页面长度
- c# - 如何将样式应用于 td 内的元素 - 使用 ItexSharp 将 html 转换为 PDF
- c++ - cpprestsdk 服务器 POST 读取失败
- google-cloud-platform - Google Play 传输频率错误 - Google BigQuery
- maven - 将几个 maven 插件打包成一个