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

Python+OpenCV出现'NoneType' object is not subscriptable错误求助

问题原因与解决方法

错误原因

报错TypeError: 'NoneType' object is not subscriptable的直接原因是**cv2.imread()返回了None**——也就是图片加载失败,此时对None执行切片操作img[13:40, 570:606],必然触发错误。

导致图片加载失败的常见场景:

  • 路径拼接错误:手动用+ "/" +拼接路径容易出错,比如文件夹路径末尾已有斜杠,会生成//的无效路径;或相对路径解析错误,程序找不到目标文件。
  • 文件夹包含非图片文件:os.listdir()会列出文件夹内所有文件(包括隐藏文件、文档等),cv2.imread无法识别这些非图片格式的文件,返回None。
  • 文件权限不足:当前运行程序的用户没有读取目标图片的权限,导致加载失败。
  • 文件名大小写问题:部分系统(如macOS/Linux)区分文件名大小写,若实际文件名是IMG001.JPG,但代码中按小写后缀读取,也会加载失败。

解决方法

  1. 用os.path.join()正确拼接路径
    避免手动拼接的错误,改用系统自带的路径拼接方法,确保路径格式合规:

    import os
    import cv2
    
    y = []
    easyocr_test = "你的目标文件夹路径"
    for every_img in sorted(os.listdir(easyocr_test)):
        img_path = os.path.join(easyocr_test, every_img)
        img = cv2.imread(img_path)
        # 后续处理逻辑
    
  2. 过滤非图片文件
    在循环中判断文件后缀,只处理常见的图片格式:

    valid_extensions = ('.jpg', '.jpeg', '.png', '.bmp', '.tiff')
    for every_img in sorted(os.listdir(easyocr_test)):
        if every_img.lower().endswith(valid_extensions):
            img_path = os.path.join(easyocr_test, every_img)
            img = cv2.imread(img_path)
            # 后续处理逻辑
    
  3. 增加加载校验
    在切片前检查img是否为None,避免报错同时定位问题文件:

    y = []
    easyocr_test = "你的目标文件夹路径"
    valid_extensions = ('.jpg', '.jpeg', '.png', '.bmp')
    for every_img in sorted(os.listdir(easyocr_test)):
        if every_img.lower().endswith(valid_extensions):
            img_path = os.path.join(easyocr_test, every_img)
            img = cv2.imread(img_path)
            if img is not None:
                left_image = img[13:40, 570:606]
                y.append(left_image)
            else:
                print(f"加载失败,跳过文件: {img_path}")
    
  4. 检查权限与文件名

    • 确保运行程序的用户对easyocr_test文件夹及内部文件有读取权限;
    • 核对文件名的大小写、拼写是否与实际一致,避免因匹配错误导致加载失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 03:39:25