无法在Windows上找到haarcascade默认的正面XML文件

Ahm*_*ani 2 python windows opencv

我是图像处理的新手,过去几周来,我一直在使用opencv for python来弄脏我的手。今天,我尝试使用默认的haarcascade XML文件进行人脸检测。这是我的代码:

import cv2
import numpy as np

front_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

img = cv2.imread('lena.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = front_cascade.detectMultiScale(gray, 1.3, 6)
#for (x, y, w, h) in faces:
#    cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 155), 3)

print faces

cv2.imshow('frame', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

这里的问题是它打印出一个空集。令我惊讶的是,当我将XML文件的名称更改为“ aaa.xml”之类的内容时,它仍然产生相同的输出。任何帮助将不胜感激。

Zda*_*daR 7

当您说时front_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml'),级联文件必须存在于正在执行程序的同一文件夹中,最佳做法是传递级联文件的完整合格路径,如果您无法找到与opencv捆绑在一起的级联文件,则您也可以.xml从此链接下载文件。

然后,您可以通过传递完整的合格路径来加载haarcascde:

front_cascade = cv2.CascadeClassifier('/Users/anmoluppal/Downloads/cascades/haarcascade_frontalface_default.xml')
Run Code Online (Sandbox Code Playgroud)