用NoneType读取opencv2 python3

时间:2018-09-05 01:00:21

标签: python-3.x opencv filter imread

我在Ubuntu系统中使用python3,opencv2进行编程。文件夹中有几张图像需要处理。当我使用imread时,print(img.shape)显示AttributeError: 'NoneType' object has no attribute 'shape'。我检查了创建的图像的大小为0字节。奇怪的是,有些图像可以成功读取,但是有些是NoneType。感谢您的帮助。

import glob as gb
import cv2
import random
import os
import numpy as np

shared_path="/home/train_1/"
folder_list=["HTC-1-M7"]

for j in range(len(folder_list)):
    output_path=os.path.join("/home/test/",folder_list[j])

    camera_path= os.path.join(shared_path,folder_list[j])


    img_path = gb.glob(camera_path+"/*.jpg")
    counter=1
    for path in img_path:
        img = cv2.imread(path)
        print(img.shape)
        kernel = np.array([[-1,2,-2,2,-1],[2,-6,8,-6,2],[-2,8,-12,8,-2],[2,-6,8,-6,2],[-1,2,-2,2,-1]],np.float32)/12
        img = cv2.filter2D(img,-1,kernel)

1 个答案:

答案 0 :(得分:1)

这意味着应该返回图像的某个函数刚返回None,因此它没有shape属性。

尝试print(img)检查图像是否为None或实际的numpy对象。您可能会收到此错误,因为图像路径在某种程度上可能是错误的。确保您的路径完全正确。