问题描述

官方文档做的Demo发现遇到了错误提示如下:

error: (-215:Assertion failed) !empty() in function ‘cv::CascadeClassifier::detectMultiScale’

错误的原因:

出现 error: (-215:Assertion failed) !empty() in function ‘cv::CascadeClassifier::detectMultiScale’ 的主要原因是我们的代码没能够正确找到正确的调用脸部分类器,换句话说,就是没有找到正确的文件路径

解决方案:

1、查找路径
首先我们要找到那个分类器所在的路径,我们可以在Cmd中直接输入【若是虚拟环境的话,则需要切换到对于虚拟环境中,再去查找对应的opencv版本与位置信息】

pip show opencv-python

来查找显示OpenCV的安装路径


需要注意的是,需要找到cv为文件名的目录包,下面是那个包的位置目录
1、

2、

 3、

 这个是文件目录,对应里面就是我们要引用的包了

4. 修改代码

#源代码

# 2.实例化OpenCV人脸和眼睛识别的分类器 
# 2.1 实例化级联分类器
face_cas = cv.CascadeClassifier( "haarcascade_frontalface_default.xml" ) 
# 2.1 加载分类器
face_cas.load('haarcascade_frontalface_default.xml')

# 2.2 实例化级联分类器
eyes_cas = cv.CascadeClassifier("haarcascade_eye.xml")
# 2.2 加载分类器
eyes_cas.load("haarcascade_eye.xml")

#修改代码为以下

# 2. 实例化OpenCV人脸和眼睛识别的分类器
# 2.1 实例化级联分类器
face_cas = cv.CascadeClassifier( "C:\\ProgramData\\Anaconda3\\envs\\py37\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_default.xml" )
# 2.1 加载分类器
face_cas.load('C:\\ProgramData\\Anaconda3\\envs\\py37\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_default.xml')
# 2.2 实例化级联分类器
eyes_cas = cv.CascadeClassifier("C:\\ProgramData\\Anaconda3\\envs\\py37\\Lib\\site-packages\\cv2\\data\\haarcascade_eye.xml")
# 2.2 加载分类器
eyes_cas.load("C:\\ProgramData\\Anaconda3\\envs\\py37\\Lib\\site-packages\\cv2\\data\\haarcascade_eye.xml")


 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐