我在一组正在按顺序加载的静态图像上运行人脸检测算法。我想只打印第一个发现的嘴,以避免大量的误报。我目前有这个:
for img in glob.glob('*'):
cvImg = cv2.imread(img,0)
if cvImg is not None:
images.append(cvImg)
print len(images)
for img in images:
(...)
mouths = mouthCascade.detectMultiScale(roiMouth, 1.3, 5)
for mouth in mouths:
(mx, my, mw, mh) = mouth[0]
cv2.rectangle(roiMouth, (mx, my), (mx+mw, my+mh), (0, 45, 55), 2)
countMount = countMount + 1
但我总是得到同样的错误:
TypeError:' numpy.int32'对象不可迭代
在(mx, my, mw, mh) = mouth[0]
行。我找不到正确的方法来做到这一点!
答案 0 :(得分:0)
嘴是一个矩形列表。 (mx, my, mw, mh) = mouth
应该做的工作。
网上有很多教程: http://docs.opencv.org/trunk/d7/d8b/tutorial_py_face_detection.html