scikit-image无法导入图像

问题描述 投票:1回答:1

环境:

  • Python 3.7.0
  • 创建virtualenv之后,通过安装pip来安装scikit-image。
  • [scikit-image==0.16.2Pillow==7.1.1
  • Linux上的Anaconda

源代码:

from skimage.io import imread
file_path = "image_you_like.png"
img = imread(file_path, plugin="pil", as_gray=False)

预期结果:

[img是图像的Numpy数组。

实际结果:

不信任行号,因为我插入了一些打印功能。

~/Python/experiment/venv/lib/python3.7/site-packages/PIL/PngImagePlugin.py in _seek(self, frame, rewind)
    789 
    790             try:
--> 791                 cid, pos, length = self.png.read()
    792             except (struct.error, SyntaxError):
    793                 break

AttributeError: 'NoneType' object has no attribute 'read'

问题

如何防止此错误并读取图像?

经过一些分析,我发现如果imreadplugin="matplotlib",则plugin="imageio"起作用。问题是某些功能,例如skimage.data.cameraimread调用plugin="pil",因此我无法尝试scikit-image的任何示例图像。

[编辑]

from skimage.io.manage_plugins import plugin_store
print(plugin_store["imread"])

打印以下内容

[('imageio', <function imread at 0x7efe39112c20>), ('matplotlib', <function imread at 0x7efe37f51290>)]

因此列表中找不到“ pil”。

python python-imaging-library scikit-image
1个回答
0
投票

此问题为reported on github

作为用户,最简单的解决方案是将版本降级到6.2.2。

© www.soinside.com 2019 - 2024. All rights reserved.