使用skimage阅读tiff文件

use*_*099 7 python tiff image-processing scipy scikit-image

我使用以下代码从文件夹中读取一组tiff文件

from PIL import image
from skimage import io
io.use_plugin('pil')
images = os.listdir(train_data_path)
for image_name in images:
    img = io.imread(os.path.join(train_data_path, image_name))
Run Code Online (Sandbox Code Playgroud)

运行上面的代码时,大多数文件都可以顺利读取.但我发现该程序会为某些特定文件生成一些警告消息

/devl/lib/python3.4/site-packages/scikit_image-0.12.3-py3.4-linux-x86_64.egg/skimage/external/tifffile/tifffile.py:1794: RuntimeWarning: py_decodelzw encountered unexpected end of stream                                  
strip = decompress(strip)      
Run Code Online (Sandbox Code Playgroud)

打开该文件时,我看不出与其他人有任何明显的区别.这可能是什么原因造成的?

Chr*_*rry 4

我遇到了同样的错误,并通过在调用 imread 中显式设置插件来解决它:

img = imread(img_path, plugin='pil')
Run Code Online (Sandbox Code Playgroud)

根据 skimage.io.imread文档

plugin : str,可选要加载的插件。默认为 None,在这种情况下使用第一个匹配的插件。

因此,在可能的情况下,imread 会找到 Tifffile 插件,该插件会产生错误(由于某种原因),而 PIL 会正确读取文件。我不知道 Tifffile 错误的来源。