Kaggle / Kaggle/docker-python

Add imagecodecs packages

オープン
#1,439 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
bug help wanted
主要言語
Python
スター
2.7k
フォーク
1k
平均マージ
7日 14時間
マージ済み PR(30日)
2

説明

## 🐛 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: requires the 'imagecodecs' package
```

### To Reproduce

```python
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.

```bash
(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 (https://github.com/Kaggle/docker-python/pull/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!

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず Kaggle/docker-python PR #1425 のパッケージ削除の変更を確認し、提供された TIFF のダウンロードを使って報告された imageio.imread("data.tif") の失敗を再現します。このイメージが Python パッケージを提供している場所を特定し、そこで imagecodecs を復元して、再現結果が TIFF を shape (512, 512) でデコードすることを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
docker, python
領域
build-system, infrastructure
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。