如何解决!empty() 在函数“detectMultiScale”中
我在 Pycharm Community Edition 2020.1.1 x64 中运行我的代码,并将我的 haar_face.xml 和这个 py 文件添加到同一文件夹中。我也尝试谷歌并添加一些东西,如 cv.data.haarcascade+ 或复制 xml 文件的完整路径,但它仍然显示下面的错误。
代码
import cv2 as cv
from cv2 import imshow
import numpy as np
img = cv.imread('lily.jpg')
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
cv.imshow('Gray People',gray)
haar_cascade= cv.CascadeClassifier(cv.data.haarcascades+r'C:\Users\mycomp\Desktop\CODE\OPENCV\haar_face.xml')
print(haar_cascade.empty()) #True
faces_rect = haar_cascade.detectMultiScale(img)#gray,scaleFactor=1.1,minNeighbors=1)
print(f'Number of faces found = {len(faces_rect)}')
for (x,y,w,h) in faces_rect:
cv.rectangle(img,(x,y),(x+w,y+h),(0,255,0),thickness=2)
cv.imshow('Detected Faces',img)
cv.waitKey(0)
结果
Traceback (most recent call last):
File "C:/Users/mycomp/Desktop/CODE/OPENCV/face_detection.py",line 12,in <module>
faces_rect = haar_cascade.detectMultiScale(img)#gray,minNeighbors=1)
cv2.error: OpenCV(4.5.2) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-duilijvh\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
解决方法
这一行的路径是错误的:
haar_cascade= cv.CascadeClassifier(
cv.data.haarcascades+r'C:\Users\mycomp\Desktop\CODE\OPENCV\haar_face.xml')
将其替换为:
haar_cascade=cv.CascadeClassifier(
cv.haarcascades+"haarcascade_frontalface_default.xml")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。