问题描述
官方文档做的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")