当前位置:   article > 正文

python 人脸检测_face_cascade = cv2.cascadeclassifier('haarcascade_

face_cascade = cv2.cascadeclassifier('haarcascade_frontalface_default.xml')

代码结果:

寻找导入的xml文件

  1. import cv2
  2. print(cv2.__file__)

找到cv2安装的路径,在该路径下找到/data文件。

里面默认下载了一部分xml文件,不是全部的xml文件。如果需要的xml文件不在里面,需要自行在网上下载,然后放到该目录下,以备调用。比如自行安装('haarcascade_mcs_nose.xml','haarcascade_mcs_mouth.xml')

导入包:

import cv2

 导入xml文件,可以根据任务需要,自行选择需要导入的xml文件

  1. #人脸检测器
  2. face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
  3. #眼睛检测器
  4. eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')
  5. #嘴巴检测器
  6. mouth_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_mcs_mouth.xml')
  7. #鼻子检测器
  8. nose_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_mcs_nose.xml')

 设置窗口:

  1. cv2.namedWindow('mytest', 0);
  2. cv2.resizeWindow('mytest', 1500, 1000)

 打开摄像头,人脸识别:

  1. #获取摄像头
  2. cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)
  3. #打开摄像头
  4. cap.open(0)
  5. while cap.isOpened():
  6. #获取画面
  7. flag, frame = cap.read()
  8. #人脸检测
  9. faces = face_cascade.detectMultiScale(frame, 1.3, 2)
  10. img = frame
  11. for (x, y, w, h) in faces:
  12. #根据人脸坐标和长度,宽度画出矩形
  13. img = cv2.rectangle(img, (x, y), (x+w, y+h),(255, 0 ,0), 2)
  14. #确定人脸范围,在人脸上搜索其他特征
  15. face_area = img[y:y+h, x:x+w]
  16. #人眼检测
  17. eyes = eye_cascade.detectMultiScale(face_area, 1.3, 2)
  18. for (ex, ey, ew, eh) in eyes:
  19. cv2.rectangle(face_area, (ex, ey), (ex + ew, ey + eh), (255, 0 ,0), 1)
  20. #嘴巴检测
  21. mouth = mouth_cascade.detectMultiScale(face_area, 1.5, 2)
  22. for (mx, my, mw, mh) in mouth:
  23. cv2.rectangle(face_area, (mx, my), (mx + mw, my + mh), (0, 0, 255), 2)
  24. # 鼻子检测
  25. nose = nose_cascade.detectMultiScale(face_area, 1.2, 5)
  26. for (nx, ny, nw, nh) in nose:
  27. cv2.rectangle(face_area, (nx, ny), (nx + nw, ny + nh), (255, 0, 255), 2)
  28. #画面显示
  29. cv2.imshow('mytest', img)
  30. #设置退出按钮
  31. key_pressed = cv2.waitKey(100)
  32. print('单机窗口,输入按键,电脑按键为',key_pressed,'按esc键结束')
  33. if key_pressed == 27:
  34. break
  35. #关闭摄像头
  36. cap.release()
  37. #关闭图像窗口
  38. cv2.destroyAllWindows()

 完整代码:

  1. import cv2
  2. #人脸检测器
  3. face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
  4. #眼睛检测器
  5. eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')
  6. #嘴巴检测器
  7. mouth_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_mcs_mouth.xml')
  8. #鼻子检测器
  9. nose_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_mcs_nose.xml')
  10. #获取摄像头
  11. cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)
  12. #打开摄像头
  13. cap.open(0)
  14. cv2.namedWindow('mytest', 0);
  15. cv2.resizeWindow('mytest', 1500, 1000)
  16. while cap.isOpened():
  17. #获取画面
  18. flag, frame = cap.read()
  19. #人脸检测
  20. faces = face_cascade.detectMultiScale(frame, 1.3, 2)
  21. img = frame
  22. for (x, y, w, h) in faces:
  23. #根据人脸坐标和长度,宽度画出矩形
  24. img = cv2.rectangle(img, (x, y), (x+w, y+h),(255, 0 ,0), 2)
  25. #确定人脸范围,在人脸上搜索其他特征
  26. face_area = img[y:y+h, x:x+w]
  27. #人眼检测
  28. eyes = eye_cascade.detectMultiScale(face_area, 1.3, 2)
  29. for (ex, ey, ew, eh) in eyes:
  30. cv2.rectangle(face_area, (ex, ey), (ex + ew, ey + eh), (255, 0 ,0), 1)
  31. #嘴巴检测
  32. mouth = mouth_cascade.detectMultiScale(face_area, 1.5, 2)
  33. for (mx, my, mw, mh) in mouth:
  34. cv2.rectangle(face_area, (mx, my), (mx + mw, my + mh), (0, 0, 255), 2)
  35. # 鼻子检测
  36. nose = nose_cascade.detectMultiScale(face_area, 1.2, 5)
  37. for (nx, ny, nw, nh) in nose:
  38. cv2.rectangle(face_area, (nx, ny), (nx + nw, ny + nh), (255, 0, 255), 2)
  39. #画面显示
  40. cv2.imshow('mytest', img)
  41. #设置退出按钮
  42. key_pressed = cv2.waitKey(100)
  43. print('单机窗口,输入按键,电脑按键为',key_pressed,'按esc键结束')
  44. if key_pressed == 27:
  45. break
  46. #关闭摄像头
  47. cap.release()
  48. #关闭图像窗口
  49. cv2.destroyAllWindows()

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

闽ICP备14008679号