cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\objdetect\src\cascadedetect

项目场景:人脸识别

from turtle import shape
from cv2 import COLOR_BAYER_BG2BGR, COLOR_BAYER_BG2GRAY
import numpy as np
import cv2

img = cv2.imread("xixi.jpg")
#级联分类器(根据多个特征识别人脸)人脸:眼睛、嘴巴、鼻子、额头、脸颊、眉毛等
#级联算法,满足一部分即可识别为人脸
path = "E:\\anaconda\Lib\site-packages\cv2\data\haarcascade_frontalface_alt.xml"
face_detector = cv2.CascadeClassifier(path)           

print(img.shape)
gray = cv2.cvtColor(img,code=cv2.COLOR_BGR2GRAY)
print(gray,shape)
faces = face_detector.detectMultiScale(gray)   #检测人脸
print(faces)
for x,y,w,h in faces:
    #cv2.rectangle(img,  #标记图片
    #pt1 = (x,y),   #左上角
    #pt2 = (x + w,y + h),    #右下角
    #color = [0,0,255],   #颜色
    #thickness=2)   #线宽

    cv2.circle(img,
    center=(x + w//2,y + h//2),
    radius=h//2,
    color=[0,0,255],
    thickness=2)
cv2.putText(img = img,  
text='xixi',  #显示的文本
org=(x,y),  #位置
fontFace=cv2.FONT_HERSHEY_PLAIN,#字体
fontScale=12,  #字号
color=[0,0,255],
thickness=2)  #颜色


cv2.imshow("face",img)

cv2.waitKey(0)
cv2.destroyAllWindows()

报错显示:

cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function cv::CascadeClassifier::detectMultiSc

报错位置:

face_detector = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")

原因分析:

我一开始只是把文件复制到另一个文件夹中,以为直接文件名打开就行,结果总是运行不了,

path = "E:\\anaconda\Lib\site-packages\cv2\data\haarcascade_frontalface_alt.xml"
face_detector = cv2.CascadeClassifier(path) 

最后换成原来的文件路径就可以了。

小提示:(怎么找到OpenCV的那些文件)

cv2.error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\objdetect\src\cascadedetect_第1张图片

划红线的位置都是一样的,这里就有opencv的所有文件啦~

如果还有小伙伴情况类似,但是上述方法仍旧不能解决的话,有可能是中文路径导致错误;

你可能感兴趣的:(python,opencv)