Python OpenCV 解决人脸识别报错cascade.detectMultiScale error

Authored by Monana
Contact me via [email protected]

环境:Python2.7 OpenCV3.1.0 Win-64bit

我想在OpenCV中实现一段如下的很简单的人脸识别代码,这也是在网上能搜索到的多数的人脸识别代码。但是遇到了这样的问题。

import cv2
filename='input.jpg'

face_cascade=cv2.CascadeClassifier('D:/opencv/opencv/data/haarcascades/haarcascade_frontalface_default.xml')

img=cv2.imread(filename)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

faces=face_cascade.detectMultiScale(gray,1.3,5)
for (x,y,h,w) in faces:
    img=cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.namedWindow('faces Detected!')
cv2.imshow('faces Detected!',img)
cv2.imwrite('faces.jpg',img)
cv2.waitKey(0)
报错
cv2.error: C:\builds\master_PackSlaveAddon-win64-vc12-static\opencv\modules\objdetect\src\cascadedetect.cpp:1639: error: (-215) !empty() in function cv::CascadeClassifier::detectMultiScale

到底是什么问题呢?可查阅官方文档和C++文件,发现这样就可以了~注意这段代码

face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

我们在这段代码后面,加上下面这句话,就是你自己找下分类器文档的位置,把path写清楚。

face_cascade.load('D:/opencv/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')

Then it works happily :)~

这里写图片描述

参考引用
http://answers.opencv.org/question/52340/opencv-error-assertion-failed-empty-in-detectmultiscale/
http://physics.nyu.edu/grierlab/manuals/opencv/classcv_1_1CascadeClassifier.html#a9659120f3e229bd0f597355042c115f6

猜你喜欢

转载自blog.csdn.net/serena9636/article/details/52530446