python - 错误:(-215:断言失败)!函数'cv :: CascadeClassifier ::detectMultiScale'中的empty()
问题描述
我正在python中使用opencv尝试这个示例人脸检测程序。但是函数中似乎有错误。detectMultiscale
代码是:
import cv2
import sys
imagePath = sys.argv[1]
cascPath = "haarcascade_frontalface_default.xml"
faceCascade = cv2.CascadeClassifier(cascPath)
image = cv2.imread('face.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30)
)
print("Found {0} faces!".format(len(faces)))
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow("Faces found", image)
cv2.waitKey(0)
这是代码。文件名是main.py
。我将所有资源放在文件下。Myproject
当我尝试从提示符运行它时,我得到了这个错误。
C:\Myproject>python main.py face.jpg
Traceback (most recent call last):
File "main.py", line 21, in <module>
minSize=(30, 30)
cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'
感谢阅读并帮助我解决这个问题。
解决方案
用这个,
import cv2
faceCascade=cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
img=cv2.imread('image\\my1.jpg')
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(imgGray,1.1,4)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imshow("image",img)
cv2.waitKey(0)
它将帮助您进行正确的人脸检测
推荐阅读
- php - What's the RegEx pattern to get recursive bracket with specific prefix?
- google-cloud-platform - can not increase google cloud gpu quota
- excel - Macro for creating multiple charts not showing correct values for axes based on arrays
- racket - redefining one of the existing racket forms
- javascript - react-router:切换重定向在 localhost:xxxx 中不起作用。从 baseUrl 重定向到其他页面
- typescript - 打字稿声明合并库类型
- amazon-web-services - AWS Glue appending duplicate records to data catalog
- apache-spark - spark container manual configuration
- c - 为堆分配的对象抛弃“const”是否合法/安全?
- c - 为什么 printf(创建单位矩阵)不打印输出?