我使用以下代码从文件夹中读取一组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)
打开该文件时,我看不出与其他人有任何明显的区别。这可能是什么原因?
答案 0 :(得分:1)
我遇到了相同的错误,并通过在调用中将插件明确设置为imread来解决了该问题:
img = imread(img_path, plugin='pil')
根据skimage.io.imread docs:
plugin:str,要加载的可选插件。默认为无,在这种情况下 使用第一个匹配的插件。
因此,在某些情况下,imread会找到Tifffile插件,该插件会产生错误(由于某种原因),而PIL会正确读取文件。我不知道Tifffile错误的来源。