Python2.7+Opencv 人脸检测

来源:互联网 发布:java判断白天还是晚上 编辑:程序博客网 时间:2024/06/02 03:40

一个官网的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 npimport cv2face_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:
可以看出,该识别的都识别了,但还是识别了不该出现的部分,这时候受到光线影响(此外还有表情等因素)
如果需要高度识别,就需要对模型进行改进了。

原创粉丝点击