OpenCv,Python - 打印出第一个找到的嘴巴

时间:2016-11-27 20:18:16

标签: python opencv numpy

我在一组正在按顺序加载的静态图像上运行人脸检测算法。我想只打印第一个发现的嘴,以避免大量的误报。我目前有这个:

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]行。我找不到正确的方法来做到这一点!

1 个答案:

答案 0 :(得分:0)

嘴是一个矩形列表。 (mx, my, mw, mh) = mouth应该做的工作。

网上有很多教程: http://docs.opencv.org/trunk/d7/d8b/tutorial_py_face_detection.html