【问题标题】:Float Tiff image to numpy array将 Tiff 图像浮动到 numpy 数组
【发布时间】:2016-01-27 11:51:28
【问题描述】:

我有一个问题,我有一个浮点图像 (*.tif),其值为 0-1,并希望在我的 python 程序中将其用作 numpy 数组。但是到目前为止,我发现的每个能够读取 .tif 的模块都将其转换为带有信息丢失的 UINT8。

【问题讨论】:

  • tifffile 处理浮动 TIFF,但我从未使用过它,也不知道它对数据有什么作用。

标签: python numpy tiff


【解决方案1】:

对于大型 tiff 图像,您可以尝试使用 rasterio 库来获取地理空间数据。

with rasterio.open('/path/to/your/image.tif) as src:
    bands = src.read()

数据类型是从输入图像中推断出来的。

【讨论】:

  • 我知道问题是 Image.open() 已经将它从 float32 转换为 uint8。所以是的,我可以将它从那里转换回 float32,但这会导致 255 -> 255。不要停留在 0.3456947 上。
  • 也许你可以打电话给PIL.Image.frombytes。但是你必须知道modes 和图像的shapefrom PIL import Image import numpy as np image_pil = Image.frombytes(mode, shape, open(image).read()) image_array = np.asarray(image_pil)
  • raise ValueError("没有足够的图像数据") ValueError: 没有足够的图像数据
  • 也许你插入了错误的模式?你可以试试光栅!
  • 我使用 GDAL 示例库中的 float32 tiff 图像测试了 rasterio 库。它将图像导入为 float32!
猜你喜欢
  • 2021-12-27
  • 2015-05-21
  • 1970-01-01
  • 2019-02-28
  • 2022-12-05
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
相关资源
最近更新 更多