python - !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, scaleFactor=1.1, 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")
推荐阅读
- c++ - 有人可以解释为什么这段代码的输出是 3 而不是 4?
- javascript - Angular rxjs debounce 以限制用户发送多个请求
- javascript - 如何从 Rails 6 视图调用 JavaScript 函数
- rspec - Accept a screen share pop up
- c# - 升级到 .Net-Core 3.1 会导致经过身份验证的控制器达到 404
- python - 如果列表在 X 范围内,如何获取列表中的连续数字序列
- java - 限制有界类型参数 A和 A
- c# - 根据数据库值更改树视图节点的背景颜色
- scala - 在 scala 的集合中查找方法
- javascript - 我有一个名字列表
- ,单击名称应将其保存到本地存储...附加代码