您的位置:首页 > 编程语言 > Python开发

OpenCV + Python 人脸检测

2015-11-13 19:55 495 查看

OpenCV + Python 人脸检测

seuchenrui@126.com

注意题目啊,这只是检测,不是识别。识别比检测难多了,以后有时间再研究。

以下的代码是OpenCV自带的例子,我做了些小修改,可以让眼睛检测结果更精确。

修改的地方是:以检测到人脸的区域的上半部分作为眼睛的检测区域。

这样修改之后,眼睛的检测区域缩小,因此,检测结果也就精确一点。

import numpy
import cv2

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

img = cv2.imread('1.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,255),2)
#-----------------------------------------
# up half of the face is set to find eyes!
#-----------------------------------------
roi_gray = gray[y:y+h/2, x:x+w]
roi_color = img[y:y+h/2, x:x+w]

eyes = eye_cascade.detectMultiScale(roi_gray,1.1,5)
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.imwrite("face_detected_1.jpg", img)
cv2.waitKey(0)
cv2.destroyAllWindows()


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: