我收到一个detectMultiScale错误。我确保指定了文件的完整路径。我的目标是进展到实时目标识别和跟踪。
import numpy as np
import cv2
face_cascade = cv2.CascadeClassifier('/home/pi/opencv-3.1.0/data/haarcascades/haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('/home/pi/opencv-3.1.0/data/haarcascades/haarcascade_eye.xml')
face_cascade.load('haarcascade_frontalface_default.xml')
img = cv2.imread('/home/pi/cam.jpg',1)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY,0)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = gray[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew+ey+eh),(0,255,0),2)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
错误代码
Traceback (most recent call last):
File "/home/pi/face.py", line 11, in <module>
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
error: /home/pi/opencv-3.1.0/modules/objdetect/src/cascadedetect.cpp:1639: error: (-215) !empty() in function detectMultiScale
OpenCV方式:
您需要HAAR级联参数的文件。有时需要下载,默认情况下不提供。这个问题可能会给你提示在哪里可以找到它们。
"脸recognition"模块
dlib现在是用于人脸提取的haar-cascade的事实上的c++库。
python中的人脸识别模块包装了dlib,可以同时处理人脸检测和识别。
https://pypi.org/project/face-recognition/