在回答我的问题之前,我知道这是一个非常常见的问题,但根据代码,可能有多种解决方案,所以如果有人能帮助我,我会非常感激。
我对Python和ML一般都很陌生。因此,在运行我的create_gesture.py文件时,我收到NoneType错误。 我的代码:
create_folder("gestures/" + str(g_id))
pic_no = 0
flag_start_capturing = False
frames = 0
while True:
img = cam.read()[1]
img = cv2.flip(img, 1)
imgCrop = img[y:y + h, x:x + w]
imgHSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
dst = cv2.calcBackProject([imgHSV], [0, 1], hist, [0, 180, 0, 256], 1)
disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (10, 10))
cv2.filter2D(dst, -1, disc, dst)
blur = cv2.GaussianBlur(dst, (11, 11), 0)
blur = cv2.medianBlur(blur, 15)
thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
thresh = cv2.merge((thresh, thresh, thresh))
thresh = cv2.cvtColor(thresh, cv2.COLOR_BGR2GRAY)
thresh = thresh[y:y + h, x:x + w]
contours = cv2.findContours(thresh.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)[1]
我收到此错误:
Traceback (most recent call last):
File "create_gestures.py", line 120, in <module>
store_images(g_id)
File "create_gestures.py", line 70, in store_images
imgCrop = img[y:y + h, x:x + w]
TypeError: 'NoneType' object is not subscriptable
编辑:
计算出行
中的整数值img = cam.read()[1]
抛出错误。应该是0而不是1.但是现在我得到了一个不同的错误:
Traceback (most recent call last):
File "create_gestures.py", line 121, in <module>
store_images(g_id)
File "create_gestures.py", line 72, in store_images
imgHSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cv2.error: OpenCV(3.4.1) D:\Build\OpenCV\opencv 3.4.1\modules\imgproc\src\color.cpp:11109: error: (-215) depth == 0 || depth == 2 || depth == 5 in function cv::cvtColor
答案 0 :(得分:0)
NoneType表示您认为自己正在使用的任何类或对象的实例,而不是实际上没有。这通常意味着上面的赋值或函数调用失败或返回意外结果。
答案 1 :(得分:0)
在此代码行之后检查变量img
中的内容:img = cam.read()[1]
。您的cam.read()[1]
可能会返回None
,您应该在继续之前检查该行代码是否正常。