使用skimage阅读tiff文件

时间:2016-10-20 16:19:16

标签: python image-processing scipy tiff 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))

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

/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)      

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

1 个答案:

答案 0 :(得分:1)

我遇到了相同的错误,并通过在调用中将插件明确设置为imread来解决了该问题:

img = imread(img_path, plugin='pil')

根据skimage.io.imread docs

  

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

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