Opencv2+Python3.7实现人脸检测

Opencv2+Python3.7实现人脸检测

在这里我们将调用摄像头,实时的进行人脸检测,并用绿框将你圈起来。

使用的是opencv2自带的人脸分类模型。

   

完整代码:

其中的文件路径请替换为你电脑中的路径,找不到就搜名字

import cv2  #Opencv2 一个跨平台的计算机视觉库

   

capture = cv2.VideoCapture(0)   #捕获视频 0表示使用当前设备的摄像头作为输入源

cv2.namedWindow("demo")     #创建一个名为test的窗口

   

face_model = cv2.CascadeClassifier(   #导入人脸模型

    'C:/Users/lenovo/AppData/Local/Programs/Python/Python37-32/Lib/site-packages/cv2/data/haarcascade_frontalface_alt2.xml')

   

while capture.isOpened():   #死循环 当摄像头正常开启了

    ret,frame = capture.read()  #读取帧

   

    face_info = face_model.detectMultiScale(  #对帧使用cv2训练好的模型进行多尺度检测

        frame,      #

        scaleFactor=1.1,    #比例因子

        minNeighbors=5,     #最小检测到的次数

        minSize=(10,10)     #目标的最小尺寸

        )

   

    for (x,y,w,h) in face_info:  #迭代检测到的数据

        cv2.rectangle(frame, (x,y), (x+w,y+h), (0,255,0), 2)    #画上一个矩形

    cv2.imshow("demo",frame)

    key = cv2.waitKey(1) & 0xFF

    if key == 27:    #按下esc退出

        break

   

capture.release()

cv2.destroyAllWindows()

   

   

需要实现:

获取摄像头视频帧

处理帧

显示帧

   

获取视频帧

完整代码

capture = cv2.VideoCapture(0)

ret,frame = capture.read()

思维导图

   

处理帧

完整代码

face_modal = cv2.CascadeClassifier(...)

face_info = face_model.detectMultiScale(...)

for (x,y,w,h) in face_info:

    cv2.rectangle(frame, (x,y), (x+w,y+h), (0,255,0), 2)

思维导图

   

显示帧

完整代码

import cv2  #Opencv2 一个跨平台的计算机视觉库

   

cv2.namedWindow("demo")     #创建一个名为test的窗口

frame = cv2.imread("path",0) #0原图,1为彩色图像,0为灰度图

   

while True:

    cv2.imshow("demo",frame)

    key = cv2.waitKey(1) & 0xFF

    if key == 27:

        break

   

cv2.destroyAllWindows()

流程图

posted @ 2019-11-25 19:22  jawide  阅读(392)  评论(0编辑  收藏  举报