【问题标题】:!empty() in function 'detectMultiScale'!empty() 在函数 'detectMultiScale'
【发布时间】:2021-08-08 10:15:52
【问题描述】:

我在 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'

【问题讨论】:

  • faces_rect = haar_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=1) 试试这个。
  • @pyNeophyte 我刚刚评论了那部分,我仍然有相同的输出

标签: python opencv face-detection haar-classifier


【解决方案1】:

这一行的路径错误:

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")

【讨论】:

  • 我将 xml 文件的名称更改为它的原始名称,就像您的代码一样,它神奇地工作。谢谢
猜你喜欢
  • 2019-06-04
  • 2020-12-04
  • 2015-08-11
  • 2021-06-30
  • 1970-01-01
  • 2021-11-08
  • 2018-05-24
相关资源
最近更新 更多