使用python和opencv进行人脸识别时遇到cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-buil

在使用 python-opencv进行人脸识别时可能会遇到下面的错误:

Traceback (most recent call last):
  File "E:/python/test/test.py", line 8, in <module>
    fa = face_detector.detectMultiScale(gray, 1.1, 3)
cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-6uw63ony\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'

出现这个的原因很简单,下面这个语句:

face_detector = cv2.CascadeClassifier(impath)

里面impath路径的xml文件路径不对,应该将路径改为全局路径:

因此要查找这个文件的位置,官方文档中说明人脸识别训练集文件haarcascade_frontalface_default.xml在python-opencv包的/data文件夹下,因此只要找到python-opencv的包在哪里就可以了,运行下面的代码:

import cv2 as cv
print(cv.__file__)

运行代码,我显示如下内容:

D:\2021\Python3.6\lib\site-packages\cv2\cv2.cp36-win_amd64.pyd

于是,我应该在D:\2021\Python3.6\Lib\site-packages\cv2路径下找到\data文件夹,其中有人脸识别的训练集haarcascade_frontalface_default.xml.
于是路径我的路径应改为如下的全局路径表示:

D:\2021\Python3.6\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml

再次运行就没有问题啦!

你可能感兴趣的:(python,opencv,人脸识别)