gpt4 book ai didi

python - 将 TIFF 图像加载为 numpy 数组

转载 作者:行者123 更新时间:2023-12-05 01:47:15 26 4
gpt4 key购买 nike

我有一系列 tiff 图像要用 Python 加载。

首先我使用:

im=Image.open(*)

它加载并正确显示。

>>> im
PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=1408x1044 at 0x116154050
>>> type(im)
instance
>>> im.size
(1408, 1044)

然后我使用:

imarray=numpy.array(im)

在哪里

>>> imarray.shape
()
>>> imarray.size
1
>>> type(imarray)
numpy.ndarray
>>> imarray
array(PIL.TiffImagePlugin.TiffImageFile image mode=I;16 size=1408x1044 at 0x116154050, dtype=object)

我已阅读 this previous post并按照那里的说明进行操作,但我无法使 imarray.shapeim.size 相匹配。

最佳答案

这是一个将数据复制到 numpy 数组的解决方案。

    from PIL import Image
import numpy as np
import ubelt as ub

# Grab some test data
fpath = ub.grabdata('http://www.topcoder.com/contest/problem/UrbanMapper3D/JAX_Tile_043_DTM.tif')

# Open the tiff image
pil_img = Image.open(fpath)

# Map PIL mode to numpy dtype (note this may need to be extended)
dtype = {'F': np.float32, 'L': np.uint8}[pil_img.mode]

# Load the data into a flat numpy array and reshape
np_img = np.array(pil_img.getdata(), dtype=dtype)
w, h = pil_img.size
np_img.shape = (h, w, np_img.size // (w * h))

关于python - 将 TIFF 图像加载为 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29130255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com