zoukankan      html  css  js  c++  java
  • opencv-Python---动态人脸捕捉

    本章重点内容:

    1、python写人脸识别

    2、选择OpenCv框架

    案例1

    导入图片并打开显示

    思路:1、导入库  2、加载图片  3、创建窗口  4、显示图片  5、暂停窗口  6、关闭窗口

     1 #1、导入库 
     2 import cv2
     3 # 2、加载图片
     4 img = cv2.imread("5.png")
     5 # 3、创建窗口
     6 cv2.namedWindow('windows_cv2')
     7 # 4、显示图片  
     8 cv2.imshow('photo',img)
     9 # 5、暂停窗口 
    10 cv2.waitKey(0)
    11 # 6、关闭窗口
    12 cv2.destroyAllWindows()

    案例2

    在识别的图片上面添加人脸识别:重点注意:需要添加模型库

    思路:1、导入库  2、加载图片  3、加载人脸模型  4、调整图片灰度  5、检查人脸

          6、标记人脸  7、创建窗口  8、显示图片  9、暂停窗口  10、关闭窗口

     1 """案例2、图片中人物脸部识别"""
     2 #1、导入库
     3 import cv2
     4 # 2、加载图片
     5 img = cv2.imread('1.jpg')
     6 # 3、加载人脸模型
     7 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
     8 # 4、调整图片灰度(人脸识别没必要识别颜色,灰度能提高性能)
     9 gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
    10 # 5、检查人脸(scaleFactor=1.15,minNeighbors=5,flags = cv2.CASCADE_SCALE_IMAGE,minSize=(5,5))  这几项都可以选择默认)
    11 faces = face_cascade.detectMultiScale(gray,
    12                                       scaleFactor=1.15,
    13                                       minNeighbors=5,
    14                                       flags = cv2.CASCADE_SCALE_IMAGE,
    15                                       minSize=(5,5))
    16 #6、标记人脸
    17 for (x,y,w,h) in faces:
    18     #里面有4个参数1、写图片2、坐标原点3、识别大小4、颜色5、线宽
    19     cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
    20 
    21 # 7、创建窗口
    22 cv2.namedWindow('windows')
    23 # 8、显示图片
    24 cv2.imshow('picture',img)
    25 # 9、暂停窗口 
    26 cv2.waitKey(0)
    27 # 10、关闭窗口
    28 cv2.destroyAllWindows()

    案例3

    调用摄像头

    思路:1、导入库  2、打开摄像头  3、获取摄像头实时画面  4、释放资源   10、关闭窗口

     1 """案例3、打开电脑摄像头实时画面"""
     2 #1、导入库
     3 import cv2
     4 # 2、打开摄像头
     5 capture = cv2.VideoCapture(0)
     6 # 3、获取摄像头实时画面
     7 cv2.namedWindow('xiong')
     8 while True:
     9     #读取摄像头的帧画面
    10     ret,frame = capture.read()
    11     #显示图片
    12     print(ret)
    13     cv2.imshow('picture',frame)
    14     #暂停窗口
    15     if cv2.waitKey(5) & 0xFF == ord('q'):
    16         break
    17 # 4、释放资源
    18 capture.release()
    19 # 5、关闭窗口
    20 cv2.destroyAllWindows()

    案例4

    在识别的图片上面添加人脸识别:重点注意:需要添加模型库

    思路:1、导入库  2、打开人脸模型  3、打开摄像头  4、创建窗口  5、获取摄像头实时画面  6、释放资源  7、关闭窗口

     1 """案例4、打开电脑摄像头实时捕捉人脸"""
     2 #1、导入库
     3 import cv2
     4 # 2、加载人脸模型
     5 # faces_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
     6 faces_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
     7 # 3、打开摄像头
     8 capture = cv2.VideoCapture(0)
     9 # 4、创建窗口
    10 cv2.namedWindow('xiong')
    11 # 5、获取摄像头实时画面
    12 while True:
    13     #读取摄像头帧画面 ret打开成功为True ,frame是摄像头画面
    14     ret,frame = capture.read()
    15     #图片调整灰度
    16     gray = cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)
    17     #检测人脸
    18     faces = faces_cascade.detectMultiScale(gray)
    19     #标记人脸
    20     for (x,y,w,h) in faces:
    21         cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
    22         #显示图片
    23         cv2.imshow('photo',frame)
    24         #暂停窗口
    25         if cv2.waitKey(5) & 0xFF == ord('q'):
    26             break
    27 
    28 # 6、释放资源
    29 capture.release()
    30 # 7、关闭窗口
    31 cv2.destroyAllWindows()
  • 相关阅读:
    FORM中的get post方法区别
    二叉树优势
    Map 排序
    ajax+MultipartFile上传文件到本地
    阿里巴巴开发手册
    poi快速导入导出excel表格
    String.trim()、.contains()等的作用
    eclipse导入ssm框架的项目,报tomcat无法启动的错误,如下:
    lesson5_oa文件操作
    lesson4_函数
  • 原文地址:https://www.cnblogs.com/XJT2018/p/9897664.html
Copyright © 2011-2022 走看看