一个官网的demo:
来源:http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_objdetect/py_face_detection/py_face_detection.html#face-detection
python3下搭建环境实在很烦……两小时都没搞定,于是我放弃了……我就用python2吧 不知道2和3版本的真正区别(除了print以外)
过了两个半小时,可以用opencv了……网上有用vs来打开opencv 但是我不知道该怎么配置,暂时用不上 这个先放一放
然后就可以用训练好的xml文件做一个简单的人脸识别;
import numpy as np import cv2 face_cascade = cv2.CascadeClassifier('haarcascades\haarcascade_frontalface_default.xml')#文件注意放在根目录下 eye_cascade = cv2.CascadeClassifier('haarcascades\haarcascade_eye.xml') img = cv2.imread('02.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) roi_gray = gray[y:y+h, x:x+w] roi_color = img[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()Result:
可以看出,该识别的都识别了,但还是识别了不该出现的部分,这时候受到光线影响(此外还有表情等因素)如果需要高度识别,就需要对模型进行改进了。