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