python中简单的人脸识别

版权声明:欢迎读阅 https://blog.csdn.net/weixin_44266137/article/details/88684411

人脸识别 这里只是简单的用科学计算及opencv简单实现一下。

# -*- encoding: utf-8 -*-

# 导包
import sys
import importlib
import cv2
# 重载importlib
importlib.reload(sys)



# 封装一个识别脸部的类
class FaceRe(object):

    # 初始化
    def __init__(self,img_path):
        self.img_path = img_path

    # 定义识别方法
    def do_face(self):

        # 导入正脸识别配置文件 这个配置文件要从cv2文件中载入
        face_cascade = cv2.CascadeClassifier('C:/Python37/Lib/sitepackages/cv2/data/haarcascade_frontalface_default.xml')

        # 读取图片
        image = cv2.imread(self.img_path)

        # 图像处理 去色
        gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

        # 探测人脸 此处是探测。 图片对象,识别等级,相邻系数,最小尺寸。标识文件
        faces = face_cascade.detectMultiScale(
            gray,
            scaleFactor=1.15,
            minNeighbors=5,
            minSize=(5,5),
            flags=cv2.IMREAD_GRAYSCALE
            )
        # 打印人脸数组
        print(f'发现了{len(faces)}张人人脸')

        # 把人脸标注出来 
        for (x,y,w,h) in faces:
            # 图片。坐标(x,y)。宽度,rgb三原色 循环次数
            cv2.circle(
                image,
                ((x+x+w)//2,(y+y+h)//2),
                (w//2),
                (0,255,0),
                2
                )
        # 显示图像
        cv2.imshow('faces',image)

        # 等待
        cv2.waitKey(0)

        
if __name__ == "__main__":
    # 实例化对象
    facere = FaceRe('./u1.jpg')
    facere.do_face()

然后基本放入一张图片,因为识别的是正脸,所以图片尽量不要太大。稍微清晰一些。类似全家福内种,然后run一下。效果还是很理想的

猜你喜欢

转载自blog.csdn.net/weixin_44266137/article/details/88684411