Skip to content

Add imagecodecs packages #1439

Description

@anwai98

🐛 Bug

TLDR error: imagecodecs is not found by tifffile for decoding input images.

Error trace:

/opt/conda/lib/python3.10/site-packages/imageio/v3.py in ?(uri, index, plugin, extension, format_hint, **kwargs)
     50     if index is not None:
     51         call_kwargs["index"] = index
     52 
     53     with imopen(uri, "r", **plugin_kwargs) as img_file:
---> 54         return np.asarray(img_file.read(**call_kwargs))

/opt/conda/lib/python3.10/site-packages/imageio/plugins/tifffile_v3.py in ?(self, index, page, **kwargs)
    165             # read all series in the file and return them as a batch
    166             ndimage = np.stack([x for x in self.iter(**kwargs)])
    167         else:
    168             index = None if index is Ellipsis else index
--> 169             ndimage = self._fh.asarray(series=index, **kwargs)
    170 
    171         return ndimage

/opt/conda/lib/python3.10/site-packages/tifffile/tifffile.py in ?(self, key, series, level, squeeze, out, maxworkers, buffersize)

/opt/conda/lib/python3.10/site-packages/tifffile/tifffile.py in ?(self, out, squeeze, lock, maxworkers, buffersize)

/opt/conda/lib/python3.10/site-packages/tifffile/tifffile.py in ?(self, lock, maxworkers, func, sort, buffersize, _fullsize)

/opt/conda/lib/python3.10/site-packages/tifffile/tifffile.py in ?(args, decodeargs, decode)
   9179     def get_resolution(
-> 9180         self,
   9181         unit: RESUNIT | int | str | None = None,
   9182         scale: float | int | None = None,
   9183     ) -> tuple[int | float, int | float]:

/opt/conda/lib/python3.10/site-packages/tifffile/tifffile.py in ?(exc, *args, **kwargs)
   8603             def unpack(data: bytes, /) -> NDArray[Any]:
-> 8604                 # return NumPy array from packed integers
   8605                 return imagecodecs.packints_decode(
   8606                     data, dtype, self.bitspersample, runlen=stwidth * samples
   8607                 )

ValueError: <COMPRESSION.LZW: 5> requires the 'imagecodecs' package

To Reproduce

import imageio.v3 as imageio
!wget -q https://owncloud.gwdg.de/index.php/s/3gAgXzzObADpAoL/download -O data.tif
image = imageio.imread("data.tif")

Expected behavior

This works seamlessly in my local system.

(sam) anwai@anwai:~/data/test$ python
Python 3.10.0 | packaged by conda-forge | (default, Nov 20 2021, 02:24:10) [GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import imageio.v3 as imageio
>>> import subprocess
>>> subprocess.run(["wget", "https://owncloud.gwdg.de/index.php/s/3gAgXzzObADpAoL/download", "-O", "data.tif"])
--2024-11-13 18:34:14--  https://owncloud.gwdg.de/index.php/s/3gAgXzzObADpAoL/download
Resolving owncloud.gwdg.de (owncloud.gwdg.de)... 134.76.23.45
Connecting to owncloud.gwdg.de (owncloud.gwdg.de)|134.76.23.45|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 215312 (210K) [image/tiff]
Saving to: ‘data.tif’

data.tif                           100%[================================================================>] 210,27K  --.-KB/s    in 0,02s   

2024-11-13 18:34:15 (12,5 MB/s) - ‘data.tif’ saved [215312/215312]

CompletedProcess(args=['wget', 'https://owncloud.gwdg.de/index.php/s/3gAgXzzObADpAoL/download', '-O', 'data.tif'], returncode=0)
>>> image = imageio.imread("data.tif")
>>> image.shape
(512, 512)

Additional context

Seems like the package was removed in this PR (#1425).

Also, installing this using pip or conda (using pip install imagecodecs / conda install -c conda-forge imagecodecs) does not seem to resolve the issue.

Thanks in advance!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugbug & failures with existing packageshelp wanted

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions