PIL.Image与skimage.io:什么时候使用它们?一般首选哪个(如果其中一个)优于另一个?

Mat*_*ler 6 python packages image-processing

我一直在使用Image来打开和获取像素信息,并阅读过诸如“ PIL是未来和blabla ..”之类的内容,但是我已经看到skimage被广泛使用。

我应该使用哪一个进行常规图像处理?对于这个问题,我会感到更自在。

Ste*_*nes 2

一般来说,如果您正在操作 Image->Image,可以肯定地说Pillow (安装它而不是PIL维护Pillow是您要选择的方法,因为这是它的主要焦点。

但是,如果您正在阅读图像以通过其他基于科学工具包的工具(例如机器学习)进行操作,那么请使用 skimage.io 或更好的替代品,imageio 感谢@cris-luengo 指出了这一点,您可能必须这样做减少来回转换。

另一个考虑因素是尺寸:

pip download scikit-imageWindows 64 计算机的结果:

21/10/2022  06:20         3,363,278 imageio-2.22.2-py3-none-any.whl
21/10/2022  06:20         2,023,640 networkx-2.8.7-py3-none-any.whl
21/10/2022  06:20        14,643,698 numpy-1.23.4-cp310-cp310-win_amd64.whl
21/10/2022  06:20            40,750 packaging-21.3-py3-none-any.whl
21/10/2022  06:20         3,276,402 Pillow-9.2.0-cp310-cp310-win_amd64.whl
21/10/2022  06:20            98,338 pyparsing-3.0.9-py3-none-any.whl
21/10/2022  06:20         4,162,789 PyWavelets-1.4.1-cp310-cp310-win_amd64.whl
21/10/2022  06:20        12,044,719 scikit_image-0.19.3-cp310-cp310-win_amd64.whl
21/10/2022  06:20        40,141,232 scipy-1.9.3-cp310-cp310-win_amd64.whl
21/10/2022  06:20           210,312 tifffile-2022.10.10-py3-none-any.whl
              10 File(s)     80,005,158 bytes
Run Code Online (Sandbox Code Playgroud)

pip download PillowWindows 64 计算机的结果:

21/10/2022  06:22         3,276,402 Pillow-9.2.0-cp310-cp310-win_amd64.whl
Run Code Online (Sandbox Code Playgroud)

请注意,下载scikit-image包含Pillow作为依赖项,因此无论您采用哪种方式,您都将“使用”Pillow,但这在很大程度上取决于其可访问性以及可访问的形式。

如果您无论如何都要走这条Scipy路线,您可能需要全部或大部分80 MB,但如果您不这样做,那么 3 MB 的枕头是一个更轻的空间承诺。

  • `skimage.io` 已被弃用,它只是 `imageio` 的一个接口。这又依赖于 Pillow 和其他一些包来读取和写入图像文件。不过“imageio”非常好。 (2认同)