相机视频实时人脸追踪检测

相机视频实时人脸追踪检测

import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image, ImageDraw, ImageFont

#查询opencv中是否含有所需xml文件
#print(cv._file_)

#显示中文
def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
	# 判断是否OpenCV图片类型
    if (isinstance(img, np.ndarray)):  
        img = Image.fromarray(cv.cvtColor(img, cv.COLOR_BGR2RGB))
    # 创建一个可以在给定图像上绘图的对象
    draw = ImageDraw.Draw(img)
    # 字体的格式
    fontStyle = ImageFont.truetype(
        "font/simsun.ttc", textSize, encoding="utf-8")
    # 绘制文本
    draw.text((left, top), text, textColor, font=fontStyle)
    # 转换回OpenCV格式
    return cv.cvtColor(np.asarray(img), cv.COLOR_RGB2BGR)

if __name__ == '__main__':
    cap = cv.VideoCapture(0)
    while(cap.isOpened()):
        ret,frame = cap.read()
        if ret == True:
            gray = cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
    		face_cas = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
            face_cas.load("haarcascade_frontalface_default.xml")
            face_cas.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32,32))
            for faceRect in faceRects:
                x,y,w,h = faceRect
                cv.rectangle(frame,(x,y),(x+h,y+w),(0,255,0),3)
                img=cv2ImgAddText(frame,"帅哥",x-5,y-30,(0,255,0),30)
            #cv.imshow("frame",frame)
            cv.imshow("img",img)
            if cv.waitKey(1)&0xFF == ord('q'):
                break
    cap.release()
    cv.destroyAllWindows()

结果出来后确实很神奇,其中的原理还应该继续深入的去学习,希望可以帮助到大家。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BusinessElite

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值