PIL.UnidentifiedImageError: cannot identify image file (when reading 4 band .tif image)

PIL.UnidentifiedImageError: cannot identify image file (when reading 4 band .tif image)

我正在处理 .tif 图像。我尝试读取 .tif 图像以便稍后在像素级别访问它并读取一些值。我在使用 Pillow 时得到的错误是:

  File "/home/billy/.local/lib/python3.8/site-packages/PIL/Image.py", line 3008, in open
    raise UnidentifiedImageError(
PIL.UnidentifiedImageError: cannot identify image file '/home/billy/Desktop/UAV_image.tif

我搜索了类似的话题,发现了这个:Image.open() cannot identify image file - Python? where a guy suggests: I fixed it by using tifffile.imread instead. I did it read it with tifffile but when I try to use: pixel = im.load() I get error... Also I found this: 对我一点帮助都没有。在其他地方,我发现了升级 Pillow 的建议,所以我从 7.0.0 升级到 9.0.1,没有任何改变……同样的问题。有谁知道如何读取 4 波段 .tif 图像并在像素级别访问它?我不需要将它显示在某个地方只是为了阅读它...

更新: 枕头9.0.1 Python 3.8.10(默认,2021 年 11 月 26 日,20:14:08) [海湾合作委员会 9.3.0]

Python 从 /home/billy/.local/lib/python3.8/site-packages/PIL 加载的模块 从 /home/billy/.local/lib/python3.8/site-packages/PIL

加载的二进制模块

--- PIL CORE 支持正常,为 9.0.1 编译 --- TKINTER 支持 ok,加载 8.6 --- FREETYPE2 支持 ok,加载 2.11.1 --- LITTLECMS2 支持正常,已加载 2.13 --- WEBP 支持 ok,加载 1.2.2 --- WEBP 透明度支持 ok --- WEBPMUX 支持正常 --- WEBP动画支持ok --- JPEG 支持正常,为 libjpeg-turbo 2.1.2 编译 --- OPENJPEG (JPEG2000) 支持正常,已加载 2.4.0 --- ZLIB (PNG/ZIP) 支持正常,已加载 1.2.11 --- LIBTIFF 支持 ok,加载 4.3.0 --- RAQM(双向文本)支持正常,加载 0.7.2,fribidi 1.0.8,harfbuzz 3.2.0 *** 未安装 LIBIMAGEQUANT(量化方法)支持 --- XCB(X协议)支持ok

BLP 扩展名:.blp 特点:开放

BMP image/bmp 扩展名:.bmp 特点:打开、保存

缓冲 扩展名:.bufr 特点:打开、保存

当前 扩展名:.cur 特点:开放

DCX 扩展名:.dcx 特点:开放

DDS 扩展名:.dds 特点:打开、保存

DIB image/bmp 扩展名:.dib 特点:打开、保存

每股收益application/postscript 扩展名:.eps、.ps 特点:打开、保存

适合 扩展名:.fit、.fits 特点:打开、保存

FLI 扩展名:.flc、.fli 特点:开放

FPX 扩展名:.fpx 特点:开放

FTEX 扩展名:.ftc、.ftu 特点:开放

GBR 扩展名:.gbr 特点:开放

动图image/gif 扩展名:.gif 功能:打开、保存、save_all

GRIB 扩展名:.grib 特点:打开、保存

HDF5 扩展名:.h5、.hdf 特点:打开、保存

ICNS image/icns 扩展名:.icns 特点:打开、保存

ICO image/x-icon 扩展名:.ico 特点:打开、保存

即时通讯 扩展名:.im 特点:打开、保存

IMT 特点:开放

IPTC 扩展名:.iim 特点:开放

JPEG image/jpeg 扩展名:.jfif、.jpe、.jpeg、.jpg 特点:打开、保存

JPEG2000 image/jp2 扩展名:.j2c、.j2k、.jp2、.jpc、.jpf、.jpx 特点:打开、保存

MCIDAS 特点:开放

麦克风 扩展名:.mic 特点:开放

MPEG video/mpeg 扩展名:.mpeg、.mpg 特点:开放

MSP 扩展名:.msp 功能:打开、保存、解码

PCD 扩展名:.pcd 特点:开放

PCX image/x-pcx 扩展名:.pcx 特点:打开、保存

皮克斯 扩展名:.pxr 特点:开放

PNG image/png 扩展名:.apng、.png 功能:打开、保存、save_all

PPM image/x-portable-anymap 扩展名:.pbm、.pgm、.pnm、.ppm 特点:打开、保存

PSD image/vnd.adobe.photoshop 扩展名:.psd 特点:开放

SGI image/sgi 扩展名:.bw、.rgb、.rgba、.sgi 特点:打开、保存

蜘蛛 特点:打开、保存

太阳 扩展名:.ras 特点:开放

TGA image/x-tga 扩展名:.icb、.tga、.vda、.vst 特点:打开、保存

TIFF image/tiff 扩展名:.tif、.tiff 功能:打开、保存、save_all

WEBP image/webp 扩展名:.webp 功能:打开、保存、save_all

WMF 扩展名:.emf、.wmf 特点:打开、保存

XBM image/xbm 扩展名:.xbm 特点:打开、保存

XPM image/xpm 扩展名:.xpm 特点:开放

XVTHUMB 特点:开放

您的图像是 4 通道,每通道 32 位。 PIL 不支持此类图像 - 请参阅 可用模式 here.

我会建议 tifffile 或 OpenCV 的 cv2.imread(…, cv2.IMREAD_UNCHANGED)