二十一、人脸检测

二十一、人脸检测,第1张


一、识别图像中的人脸

haarcascade_frontalface_alt_tree.xml
lbpcascade_frontalcatface.xml
GitHub上有Haar级联检测器源代码可自行下载,lbp级联检测器也一样有源码可自行下载
也一样

import cv2 as cv
import numpy as np


def face_detect(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)#转成灰度图
    face_detector = cv.CascadeClassifier(r"G:\Juptyer_workspace\study\opencv\opencv3\haarcascade_frontalface_alt_tree.xml")#级联检测器
    faces = face_detector.detectMultiScale(gray, 1.1, 2)#多个尺度空间进行查找人脸
    #第三个参数2  表示附近出现两个检测结果即可,两个矩形框
    
    for x, y, w, h in faces:
        cv.rectangle(image, (x, y), (x+w, y+h), (0, 0, 255), 2)#绘制矩形框
    cv.imshow("result", image)


src = cv.imread(r"G:\Juptyer_workspace\study\opencv\opencv3\pyy.jpg")
cv.namedWindow("result", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
face_detect(src)
cv.waitKey(0)
cv.destroyAllWindows()

效果图如下:
(我的男神)


二、识别视频中的人脸

import cv2 as cv
import numpy as np


def face_detect(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)#转成灰度图
    face_detector = cv.CascadeClassifier(r"G:\Juptyer_workspace\study\opencv\opencv3\haarcascade_frontalface_alt_tree.xml")#级联检测器
    faces = face_detector.detectMultiScale(gray, 1.1, 2)#多个尺度空间进行查找人脸
    #第三个参数2  表示附近出现两个检测结果即可,两个矩形框
    for x, y, w, h in faces:
        cv.rectangle(image, (x, y), (x+w, y+h), (0, 0, 255), 1)#绘制矩形框
    cv.imshow("result", image)

    
capture = cv.VideoCapture(r"G:\Juptyer_workspace\study\opencv\opencv3\beyond.mp4")#参数为0。


表示调用本地摄像头 cv.namedWindow("result", cv.WINDOW_AUTOSIZE) while(True): ret, frame = capture.read() frame = cv.flip(frame, 1) face_detect(frame) c = cv.waitKey(10) if c == 27: # ESC break cv.waitKey(0) cv.destroyAllWindows()

效果图如下:
(我的信仰)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/570510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存