You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历图像执行数据增强时报UnidentifiedImageError的原因是什么?

问题原因及修复方案

可能的报错原因

  • 文件格式不匹配:虽然文件名后缀为.jpg,但实际文件并非标准JPEG格式,可能是其他格式图片强制修改后缀得到,也可能是文件传输、存储过程中损坏导致头部信息缺失,解码工具无法识别。
  • 解码工具兼容性不足:代码中调用io.imread时指定了plugin='matplotlib',matplotlib的图像读取接口对非常规JPEG格式(比如CMYK色彩模式的JPEG、渐进式JPEG、部分编码不规范的摄像头输出JPEG)兼容性极差,很容易出现识别失败的问题。
  • 代码逻辑隐含问题:现有代码未导入os模块就直接调用os相关方法,同时遍历图片的循环中每次都会覆盖image变量,最终只会处理目录下的最后一张JPG图片,且如果遍历过程中碰到损坏的图片就会直接终止运行抛出报错。
  • 权限异常:当前Python运行进程没有读取36.jpg文件的权限,也会触发识别类报错。

修复建议

  1. 先验证文件合法性:用系统自带的图像查看器打开36.jpg,确认可以正常预览,如果无法打开说明文件本身损坏,直接替换或删除即可;如果可以正常打开,尝试用PIL重新转存一次为标准JPEG格式。
  2. 替换图像读取方式:修改io.imread的调用逻辑,移除plugin='matplotlib'参数,或者直接用Pillow库读取图片,示例代码如下:
from PIL import Image
import numpy as np

# 替换原有io.imread逻辑
image = np.array(Image.open(img).convert('RGB'))
  1. 补全代码缺失逻辑:先添加import os导入语句,同时调整遍历逻辑,把数据增强的循环放到每张图片的读取逻辑内部,避免只处理最后一张图片的问题,调整后参考代码如下:
import os
from keras.preprocessing.image import ImageDataGenerator
from PIL import Image
import numpy as np

gen = ImageDataGenerator(rotation_range=10, width_shift_range=0.1,
                        height_shift_range=0.1, shear_range=0.15,
                        zoom_range=0.1, channel_shift_range=10., horizontal_flip=True,
                        fill_mode='nearest')

image_path = r'X:\Users\my_path'
os.chdir(image_path)

for img_name in os.listdir(image_path):
    if img_name.endswith(".jpg"):
        try:
            image = np.array(Image.open(img_name).convert('RGB'))
            image = image.reshape((1, ) + image.shape)
            i = 0
            for batch in gen.flow(image, batch_size=16,
                                save_to_dir=image_path,
                                save_prefix='aug',
                                save_format='jpg'):
                i += 1
                if i > 5:
                    break
        except Exception as e:
            print(f"处理文件{img_name}失败,错误信息:{e}")
            # 可自行选择删除损坏文件或跳过
            continue
  1. 检查文件权限:确认36.jpg没有被设置为只读或禁止当前用户访问的权限。

内容的提问来源于stack exchange,提问作者Egorsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:27:02