OpenCV人脸检测与人脸识别

本文介绍了如何使用OpenCV进行人脸检测和人脸识别。首先,通过级联分类器加载haarcascade_frontalface_default.xml文件进行人脸检测,然后进行图像预处理和人脸位置标记。接着,讲解了人脸识别的步骤,包括制作人脸数据集、训练EigenFaceRecognizer模型以及使用模型进行预测。尽管OpenCV的算法在实际应用中可能有限,但FaceNet框架提供了更先进的解决方案。
摘要由CSDN通过智能技术生成

微信搜索关注“咖啡遇上代码”公众号,查看更多

OpenCV是开源的计算机视觉库,实现了很多图像处理和计算机视觉方面的通用算法。下面主要OpenCV中的内置算法来实现人脸检测与人脸识别。

人脸检测

流程

  • 通过OpenCV自带的级联分类器来加载人脸检测的相关文件haarcascade_frontalface_default.xml(Windows版路径为opencv目录下的\build\etc\haarcascades\)

  • 对图像进行灰度化等预处理

  • 通过detectMultiScale函数完成对指定图片中的人脸进行检测(函数返回的为脸位置信息)

  • 通过rectangle函数绘制出人脸位置

代码

import cv2 as cv
import numpy as np

def face_detect(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    face_detector = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
    faces = face_detector.detectMultiScale(gray, 1.02, 20)
    for x, y, w, h in faces:
        cv.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)
    cv.imshow("face_detect", image)

def video_face_detect():
    capture = cv.VideoCapture(0)
    while True:
        r
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值