python之opencv人脸识别快速体验

目录

1、灰度转换

2、引用opencv官方提供的人脸训练模型

 3、绘制方框(用于框住人脸)

4、效果及完整代码:

5、检测多张人脸: 

学习链接:


1、灰度转换

# 灰度转换
    gary = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

2、引用opencv官方提供的人脸训练模型

 # opencv官方提供的数据集
    face_detect = cv.CascadeClassifier('D:/opencv/opencv/sources/data/haarcascades/haarcascade_frontalface_alt2.xml')

 这个文件opencv需要去官网下载,我这里安装在D盘的opencv文件下。文件夹名称不要包含中文,否则运行报错。

 3、绘制方框(用于框住人脸)

    #
    face = face_detect.detectMultiScale(gary,1.01,5)
    #绘制方框
    for x,y,w,h in face:
        cv.rectangle(img,(x,y),(x+w,y+h),color=(0,0,255),thickness=2)
    #显示图片
    cv.imshow('res',img)

具体不太懂,可以百度一下

4、效果及完整代码:

这样胡歌的脸就识别出来啦!不过,图中把手指也识别成了人脸。

修改:将图中划红短线部分1.01改为1.1之后,就没有了,这个类似识别精度。另外划长红线部分修改了图片的大小,以便显示。

5、检测多张人脸: 

要实现检测多人,只需见图片更换即可。同时可以限制方框的大小(100,100),(300,300),超出范围的将不检测。

 完整代码:

import cv2 as cv

def face_detect_demo():
    # 灰度转换
    gary = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
    # opencv官方提供的数据集
    face_detect = cv.CascadeClassifier('D:/opencv/opencv/sources/data/haarcascades/haarcascade_frontalface_alt2.xml')
    #
    face = face_detect.detectMultiScale(gary,1.1,5,0,(100,100),(300,300))#限制检测大小
    for x,y,w,h in face:
        cv.rectangle(img,(x,y),(x+w,y+h),color=(0,0,255),thickness=2)

    resize_img = cv.resize(img, dsize=(500, 500))
    cv.imshow('res', resize_img)


#图片读取
img = cv.imread("C:\\Users\\Administrator\\Desktop\\faces.jpg")  #换成含多张人脸的图片
#检测函数
face_detect_demo()
#按q退出显示
while True:
    if ord('q')==cv.waitKey(0):
        break
#内存
cv.destroyAllWindows()


学习链接:

【一天搞定人脸识别项目!学不会up直接下跪!(python+opencv)】 https://www.bilibili.com/video/BV1Lq4y1Z7dm/?p=7&share_source=copy_web&vd_source=41b4996195171edfeabb41992c07dd65

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值