1

I am working with .tif images. I try to read a .tif image in order to access it later on pixel level and read some values. The error that I get when using Pillow is this:

  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

I searched for similar threads and I found this: 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: what type of array is being returned by tiff.imread()? which didn't help me at all. Somewhere else I found the suggestion of upgrading the Pillow so I went from 7.0.0 to 9.0.1, nothing changed... the same problem. Does anyone have any idea how to read the 4-band .tif image and access it on pixel level? I don't need to display it somewhere just to read it...

Update: Pillow 9.0.1 Python 3.8.10 (default, Nov 26 2021, 20:14:08) [GCC 9.3.0]

Python modules loaded from /home/billy/.local/lib/python3.8/site-packages/PIL Binary modules loaded from /home/billy/.local/lib/python3.8/site-packages/PIL

--- PIL CORE support ok, compiled for 9.0.1 --- TKINTER support ok, loaded 8.6 --- FREETYPE2 support ok, loaded 2.11.1 --- LITTLECMS2 support ok, loaded 2.13 --- WEBP support ok, loaded 1.2.2 --- WEBP Transparency support ok --- WEBPMUX support ok --- WEBP Animation support ok --- JPEG support ok, compiled for libjpeg-turbo 2.1.2 --- OPENJPEG (JPEG2000) support ok, loaded 2.4.0 --- ZLIB (PNG/ZIP) support ok, loaded 1.2.11 --- LIBTIFF support ok, loaded 4.3.0 --- RAQM (Bidirectional Text) support ok, loaded 0.7.2, fribidi 1.0.8, harfbuzz 3.2.0 *** LIBIMAGEQUANT (Quantization method) support not installed --- XCB (X protocol) support ok

BLP Extensions: .blp Features: open

BMP image/bmp Extensions: .bmp Features: open, save

BUFR Extensions: .bufr Features: open, save

CUR Extensions: .cur Features: open

DCX Extensions: .dcx Features: open

DDS Extensions: .dds Features: open, save

DIB image/bmp Extensions: .dib Features: open, save

EPS application/postscript Extensions: .eps, .ps Features: open, save

FITS Extensions: .fit, .fits Features: open, save

FLI Extensions: .flc, .fli Features: open

FPX Extensions: .fpx Features: open

FTEX Extensions: .ftc, .ftu Features: open

GBR Extensions: .gbr Features: open

GIF image/gif Extensions: .gif Features: open, save, save_all

GRIB Extensions: .grib Features: open, save

HDF5 Extensions: .h5, .hdf Features: open, save

ICNS image/icns Extensions: .icns Features: open, save

ICO image/x-icon Extensions: .ico Features: open, save

IM Extensions: .im Features: open, save

IMT Features: open

IPTC Extensions: .iim Features: open

JPEG image/jpeg Extensions: .jfif, .jpe, .jpeg, .jpg Features: open, save

JPEG2000 image/jp2 Extensions: .j2c, .j2k, .jp2, .jpc, .jpf, .jpx Features: open, save

MCIDAS Features: open

MIC Extensions: .mic Features: open

MPEG video/mpeg Extensions: .mpeg, .mpg Features: open

MSP Extensions: .msp Features: open, save, decode

PCD Extensions: .pcd Features: open

PCX image/x-pcx Extensions: .pcx Features: open, save

PIXAR Extensions: .pxr Features: open

PNG image/png Extensions: .apng, .png Features: open, save, save_all

PPM image/x-portable-anymap Extensions: .pbm, .pgm, .pnm, .ppm Features: open, save

PSD image/vnd.adobe.photoshop Extensions: .psd Features: open

SGI image/sgi Extensions: .bw, .rgb, .rgba, .sgi Features: open, save

SPIDER Features: open, save

SUN Extensions: .ras Features: open

TGA image/x-tga Extensions: .icb, .tga, .vda, .vst Features: open, save

TIFF image/tiff Extensions: .tif, .tiff Features: open, save, save_all

WEBP image/webp Extensions: .webp Features: open, save, save_all

WMF Extensions: .emf, .wmf Features: open, save

XBM image/xbm Extensions: .xbm Features: open, save

XPM image/xpm Extensions: .xpm Features: open

XVTHUMB Features: open

enter image description here

just_learning
  • 319
  • 2
  • 6
  • 19

1 Answers1

2

Your image is 4-channels of 32-bits each. PIL doesn’t support such images - see Available Modes here.

I would suggest tifffile or OpenCV’s cv2.imread(…, cv2.IMREAD_UNCHANGED)

Mark Setchell
  • 169,892
  • 24
  • 238
  • 370
  • I read it with opencv, but I have difficulties accessing it on pixel level. Any ideas? I tried https://scikit-image.org/docs/dev/api/skimage.io.html and `zarr` from `tifffile` tutorial, but I cannot achieve it. – just_learning Mar 29 '22 at 12:36
  • I get this error: `TypeError: 'NoneType' object is not subscriptable` – just_learning Mar 29 '22 at 13:23