出现“TypeError: 'NoneType' object is not subscriptable”,怎么解决?

问题相关代码
def read_img(img_fp):
    img = cv2.imread(img_fp)[:, :, ::-1]
    h_origin, w_origin, _ = img.shape
    return img, h_origin, w_origin

运行结果及报错内容

TypeError: 'NoneType' object is not subscriptable

直接删掉imread(img_fp)后面的[:, :, ::-1]
def read_img(img_fp):
    img = cv2.imread(img_fp)
    h_origin, w_origin, _ = img.shape
    return img, h_origin, w_origin

结果报错内容为 AttributeError: 'NoneType' object has no attribute 'shape'

这个情况, 两种可能, 1是图片路径不对,2是图片文件格式与扩展名不符。
找个标准图片先测试。

那就这样看看文件

def read_img(img_fp):
    print(img_fp)
    img = cv2.imread(img_fp)[:, :, ::-1]
    h_origin, w_origin, _ = img.shape
    return img, h_origin, w_origin

也不出错啦?

出错信息前,应该有文件名。

就研究你的问题的代码, 确认下是否是文件名是否正常, 不做其他的测试。