我在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)
答案 0 :(得分:1)
这意味着应该返回图像的某个函数刚返回None
,因此它没有shape属性。
尝试print(img)
检查图像是否为None或实际的numpy对象。您可能会收到此错误,因为图像路径在某种程度上可能是错误的。确保您的路径完全正确。