CascadeClassifier人脸截取时出现错误

在尝试练习用CascadeClassifier做人脸截取的时候一直报错,而且是同一个错误:
SystemError: returned a result with an error set
请问大佬这是什么情况?

以下练习代码源自网络

mport cv2
import sys
import os

def getface(img):

    path = "E:/deeplearning/haarcascades/haarcascade_frontalface_default.xml"
        hc = cv2.CascadeClassifier(path)
        faces = hc.detectMultiScale(img)#得到人脸个数以及区域
    i=0
    while i <len(faces): #对每张脸进行输出
        imgROI = img[faces[i][1]:faces[i][1] + faces[i][3], faces[i][0]:faces[i][0] + faces[i][2]]# 前者为高度,后者为宽度
        cv2.imshow("face_default", imgROI)#创建窗口显示图片
        k = cv2.waitKey(0)  # 无限期等待输入
        i = i + 1


img = cv2.imread("E:/deeplearning/picture/2.jpg")#jpg放在.py路径下
getface(img)

---------------------------------------------------------------------------
error                                     Traceback (most recent call last)
error: OpenCV(3.4.4) C:\projects\opencv-python\opencv\modules\core\src\persistence_c.cpp:388: error: (-49:Unknown error code -49) Input file is empty in function 'cvOpenFileStorage'


During handling of the above exception, another exception occurred:

SystemError                               Traceback (most recent call last)
<ipython-input-8-fba8e5a3ccdd> in <module>()
     20 
     21 img = cv2.imread("E:/deeplearning/picture/2.jpg")#jpg放在.py路径下
---> 22 getface(img)

<ipython-input-8-fba8e5a3ccdd> in getface(img)
      7     path = "E:/deeplearning/haarcascades/haarcascade_frontalface_default.xml" #分类器类别,路径与.py一致
      8 
----> 9     hc = cv2.CascadeClassifier(path)#识别分类器
     10 
     11     # 人脸区域探测 裁剪 i可以处理 如果一张图像中多个人脸的情况

SystemError: <class 'cv2.CascadeClassifier'> returned a result with an error set

1个回答

你在下载python的地址里找到haarcascade_frontalface_alt2.xml文件,例如:D:\Python37\Lib\site-packages\cv2\data\haarcascade_frontalface_alt2.xml.我之前在网上找了很多方法,无论是把中文路径都改了,还是把路径换成绝对路径都没用,最后在python自带的CV2路径下找到了分类器文件。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!