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)
打开该文件时,我看不出与其他人有任何明显的区别.这可能是什么原因造成的?
我遇到了同样的错误,并通过在调用 imread 中显式设置插件来解决它:
img = imread(img_path, plugin='pil')
Run Code Online (Sandbox Code Playgroud)
根据 skimage.io.imread文档:
plugin : str,可选要加载的插件。默认为 None,在这种情况下使用第一个匹配的插件。
因此,在可能的情况下,imread 会找到 Tifffile 插件,该插件会产生错误(由于某种原因),而 PIL 会正确读取文件。我不知道 Tifffile 错误的来源。