赞
踩
Tip:先确定脸部的位置,然后再确定眼睛的位置。
- # -*- coding: utf-8 -*-
- """
- Created on Wed Aug 29 21:48:21 2018
- @author: Miracle
- """
- import cv2
-
- def detectFace():
- #加载人脸检测的配置文件
- face_cascade = cv2.CascadeClassifier('../data/haarcascades/haarcascade_frontalface_alt.xml')
- eye_cascade = cv2.CascadeClassifier('../data/haarcascades/haarcascade_eye.xml')
- #判断是否可行
- if eye_cascade.empty() and face_cascade.empty():
- raise IOError('Cannot load cascade classifier xml files!')
- #打开摄像头
- cap = cv2.VideoCapture(0)
- scaling_factor = 1.15
-
- if not cap.isOpened:
- raise IOError('Cannot open webcam!')
-
- while True:
- ret,frame = cap.read()
- if not ret:
- break
- frame = cv2.resize(frame,None,
- fx = scaling_factor,
- fy = scaling_factor,
- interpolation = cv2.INTER_LINEAR)
- gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
-
- #获取脸部位置
- face_rects = face_cascade.detectMultiScale(gray)
-
- #获取脸部地址
- for (x,y,w,h) in face_rects:
- roi_gray = gray[y:y+h,x:x+h]
- roi_color = frame[y:y+h,x:x+h]
- eyes = eye_cascade.detectMultiScale(roi_gray)
-
- for (x_eye,y_eye,w_eye,h_eye) in eyes:
- center = (int(x_eye+0.5*w_eye),int(y_eye+0.5*h_eye))
- radius = int(0.3*(w_eye+h_eye))
- color = (0,255,0)
- thickness = 3
- cv2.circle(roi_color,center,radius,color,thickness)
-
- cv2.imshow('detecting eye',frame)
-
- if cv2.waitKey(1) == 27:
- break
- cap.release()
- cv2.destroyAllWindows()
-
- if __name__ == '__main__':
- detectFace()

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。