欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > opencv级联分类器实现人脸识别

opencv级联分类器实现人脸识别

2025/2/26 2:37:39 来源:https://blog.csdn.net/huage926/article/details/142765755  浏览:    关键词:opencv级联分类器实现人脸识别

级联分类器(Cascade Classifier)是一种基于Haar特征的对象检测算法,首先需要手动的去训练自己的模型,如人脸识别官网有训练好的,可以直接拿来用
链接直达
官方代码示例:

from __future__ import print_function
import cv2 as cv
import argparsedef detectAndDisplay(frame):frame_gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)frame_gray = cv.equalizeHist(frame_gray)# -- 检测面部faces = face_cascade.detectMultiScale(frame_gray)for (x, y, w, h) in faces:center = (x + w // 2, y + h // 2)frame = cv.ellipse(frame, center, (w // 2, h // 2), 0, 0, 360, (255, 0, 255), 4)faceROI = frame_gray[y:y + h, x:x + w]# -- 在每张面部上检测眼睛eyes = eyes_cascade.detectMultiScale(faceROI)for (x2, y2, w2, h2) in eyes:eye_center = (x + x2 + w2 // 2, y + y2 + h2 // 2)radius = int(round((w2 + h2) * 0.25))frame = cv.circle(frame, eye_center, radius, (255, 0, 0), 4)cv.imshow('Capture - Face detection', frame)parser = argparse.ArgumentParser(description='Code for Cascade Classifier tutorial.')
parser.add_argument('--face_cascade', help='Path to face cascade.', default='haarcascade_frontalface_alt.xml')
parser.add_argument('--eyes_cascade', help='Path to eyes cascade.', default='haarcascade_eye_tree_eyeglasses.xml')
parser.add_argument('--camera', help='Camera divide number.', type=int, default=0)
args = parser.parse_args()
face_cascade_name = args.face_cascade
eyes_cascade_name = args.eyes_cascade
face_cascade = cv.CascadeClassifier()
eyes_cascade = cv.CascadeClassifier()
# -- 1. 加载级联
if not face_cascade.load(cv.samples.findFile(face_cascade_name)):print('--(!)Error loading face cascade')exit(0)
if not eyes_cascade.load(cv.samples.findFile(eyes_cascade_name)):print('--(!)Error loading eyes cascade')exit(0)
camera_device = args.camera
# -- 2. 读取视频流
cap = cv.VideoCapture(camera_device)
if not cap.isOpened:print('--(!)Error opening video capture')exit(0)
while True:ret, frame = cap.read()if frame is None:print('--(!) No captured frame -- Break!')breakdetectAndDisplay(frame)if cv.waitKey(10) == 27:break

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词