版权声明:欢迎读阅 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一下。效果还是很理想的