当前位置:   article > 正文

OpenCV-Python系列·第二十一集:检测&跟踪人眼_python opencv 深度学习眼睛定位

python opencv 深度学习眼睛定位

Tip:先确定脸部的位置,然后再确定眼睛的位置。

  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Wed Aug 29 21:48:21 2018
  4. @author: Miracle
  5. """
  6. import cv2
  7. def detectFace():
  8. #加载人脸检测的配置文件
  9. face_cascade = cv2.CascadeClassifier('../data/haarcascades/haarcascade_frontalface_alt.xml')
  10. eye_cascade = cv2.CascadeClassifier('../data/haarcascades/haarcascade_eye.xml')
  11. #判断是否可行
  12. if eye_cascade.empty() and face_cascade.empty():
  13. raise IOError('Cannot load cascade classifier xml files!')
  14. #打开摄像头
  15. cap = cv2.VideoCapture(0)
  16. scaling_factor = 1.15
  17. if not cap.isOpened:
  18. raise IOError('Cannot open webcam!')
  19. while True:
  20. ret,frame = cap.read()
  21. if not ret:
  22. break
  23. frame = cv2.resize(frame,None,
  24. fx = scaling_factor,
  25. fy = scaling_factor,
  26. interpolation = cv2.INTER_LINEAR)
  27. gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
  28. #获取脸部位置
  29. face_rects = face_cascade.detectMultiScale(gray)
  30. #获取脸部地址
  31. for (x,y,w,h) in face_rects:
  32. roi_gray = gray[y:y+h,x:x+h]
  33. roi_color = frame[y:y+h,x:x+h]
  34. eyes = eye_cascade.detectMultiScale(roi_gray)
  35. for (x_eye,y_eye,w_eye,h_eye) in eyes:
  36. center = (int(x_eye+0.5*w_eye),int(y_eye+0.5*h_eye))
  37. radius = int(0.3*(w_eye+h_eye))
  38. color = (0,255,0)
  39. thickness = 3
  40. cv2.circle(roi_color,center,radius,color,thickness)
  41. cv2.imshow('detecting eye',frame)
  42. if cv2.waitKey(1) == 27:
  43. break
  44. cap.release()
  45. cv2.destroyAllWindows()
  46. if __name__ == '__main__':
  47. detectFace()

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/324744
推荐阅读
相关标签
  

闽ICP备14008679号