skimage保存TIFF文件后读取报错TiffFileError及UnidentifiedImageError求助
解决TIFF文件无法读取的问题
1. 检查保存代码与数组有效性
你给出的imsave调用缺少关键的数组参数,正确写法必须传入要保存的numpy数组:
skimage.io.imsave('file_path\\name.tif', your_numpy_array)
- 确认第三个文件保存时是否正确传入数组,打印数组信息排查异常:
print(third_array.shape, third_array.dtype) - 如果数组是
float64这类TIFF不兼容的类型,转换为支持的格式:# 根据数据范围选uint8/uint16/float32 third_array = third_array.astype('uint8')
2. 换用更可靠的TIFF处理库
skimage的IO模块依赖第三方库,直接用tifffile库操作更稳定:
- 安装(如果没装):
pip install tifffile - 重新保存第三个数组:
import tifffile tifffile.imwrite('file_path\\name.tif', third_array) - 读取验证:
img = tifffile.imread('file_path\\name.tif')
3. 验证文件与路径合法性
- 查看文件大小:如果第三个文件远小于另外两个,说明保存时未写入有效数据,文件损坏。
- 检查路径:用正斜杠替代反斜杠避免转义错误,比如
'file_path/name.tif';避免文件名含特殊字符或过长空格。 - 用系统图片查看器打开:如果系统也无法识别,说明文件本身不是有效TIFF,需重新保存。
4. 强制指定TIFF插件保存
调用imsave时明确指定tifffile插件,避免自动格式识别出错:
skimage.io.imsave('file_path\\name.tif', third_array, plugin='tifffile')
内容的提问来源于stack exchange,提问作者svollowork
相关产品推荐
相关产品推荐

