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

作者:孔径光阑 原文地址:https://blog.csdn.net/m0_67069564/article/details/128020172

%s 个评论

要回复文章请先登录注册