【问题标题】:OpenCV's Cascade classifier face detect freezingOpenCV 的 Cascade 分类器人脸检测冻结
【发布时间】:2013-03-25 02:01:03
【问题描述】:

我一直在研究一个人脸检测脚本,它可以让您使用 OpenCV 的 (cv2) Haar Cascade Classifier 一次检测多个人脸,但是,每次我调用这个函数时,程序都会无限期冻结而没有任何错误迹象,这是我的函数的代码:

 import cv2
 import cv2.cv
 def detect(img, cascade_fn='haarcascade_frontalface_alt2.xml',
           scaleFactor=1.3, minNeighbors=4, minSize=(20, 20),
           flags=cv.CV_HAAR_SCALE_IMAGE):
    cascade = cv2.CascadeClassifier(cascade_fn)
    faces = list()
    test = True
    while test == True:
        rect = cascade.detectMultiScale(img, scaleFactor=scaleFactor,
                                         minNeighbors=minNeighbors,
                                         minSize=minSize, flags=flags)
        if len(rect) == 0:
            test = False
        else:
            for x1, y1, x2, y2 in rect:
                faces.append(img[y1:y2, x1:x2])
                cv2.rectangle(img, (x1, y1), (x2, y2), color, (0, 0, 0))
    return faces

所以请,谁能指出我面临这个错误的原因,谢谢。

【问题讨论】:

    标签: python opencv numpy computer-vision


    【解决方案1】:

    如果detectMultiScale 找不到任何面孔,则将test 分配给False 并且循环结束。如果它确实检测到人脸,它们会被添加到列表faces 中,并且会按照您(大概)的意图绘制一个矩形。

    但是test 仍然是True,这意味着你的循环再次被执行。并且由于没有更改其输入变量detectMultiScale 将检测到相同的面孔并再次将它们添加到列表faces。因此,在这种情况下,循环将永远不会结束。

    您可能想要这样做:

    import cv2
    def detect(img, cascade_fn='haarcascade_frontalface_alt2.xml',
           scaleFactor=1.3, minNeighbors=4, minSize=(20, 20),
           flags=cv2.cv.CV_HAAR_SCALE_IMAGE):
        cascade = cv2.CascadeClassifier(cascade_fn)
        faces = list()
        rect = cascade.detectMultiScale(img, scaleFactor=scaleFactor,
                                         minNeighbors=minNeighbors,
                                         minSize=minSize, flags=flags)
        for x1, y1, x2, y2 in rect:
            faces.append(img[y1:y2, x1:x2])
            cv2.rectangle(img, (x1, y1), (x2, y2), color, (0, 0, 0))
        return faces
    

    【讨论】:

      猜你喜欢
      • 2015-12-18
      • 2011-12-18
      • 2019-04-20
      • 2018-06-30
      • 2012-02-04
      • 2013-05-24
      • 1970-01-01
      • 2015-08-23
      • 2015-01-11
      相关资源
      最近更新 更多