opencv实现人脸识别(二) 人脸图像采集模块

这一步我们开始搭建第一个模块,用来检测到图像中的人脸位置,并将它拍下来保存在指定路径

流程图:

代码实现:

import cv2

def pic(cam):
    # 调用笔记本内置摄像头,所以参数为0,如果有其他的摄像头可以调整参数为1,2
    cam = cv2.VideoCapture(0)

    # 使用自带的人脸识别分类器, 其中 这个.xml文件是 识别人脸的分类器文件
    # 这里我已经把这个文件放在了当前项目目录下
    face_detector = cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml‘)

    # 输入用户id
    face_id = input(‘\n enter user id:‘)

    print(‘\n Initializing face capture. Look at the camera and wait ...‘)

    # count变量记录图片张数
    count = 0

    while True:

        # 从摄像头读取图片
        #  cam.read()按帧读取视频,sucess,img是cam.read()方法的两个返回值。
        #  其中sucess是布尔值,如果读取帧是正确的则返回True,
        #  如果文件读取到结尾,它的返回值就为False。
        #  img就是每一帧的图像,是个三维矩阵。
        sucess, img = cam.read()

        # 转为灰度图片
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

        # 检测人脸
        faces = face_detector.detectMultiScale(gray, 1.3, 5)

        for (x, y, w, h) in faces:
            # 4个参数依次是  图像矩阵, 矩形左上角起始坐标,右下角坐标, 矩形边框线的颜色
            cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0))
            count += 1

            # 保存图像
            cv2.imwrite("D:/FaceData/" + str(face_id) + ‘.‘ + str(count) + ‘.jpg‘, gray[y: y + h, x: x + w])

            cv2.imshow(‘image‘, img)

        # 保持画面的持续。
        k = cv2.waitKey(1)

        if k == 27:   # 通过esc键退出摄像
            break

        elif count >= 100:  # 得到100个样本后退出摄像
            break

    # 关闭摄像头
    cam.release()
    cv2.destroyAllWindows()

if __name__ == ‘__main__‘:
    cam = cv2.VideoCapture(0)
    pic(cam)

代码中每个函数的作用基本都进行了简略注释,

到现在,我们就在指定的文件夹中有了一定数量的人脸灰度图了。

原文地址:https://www.cnblogs.com/blsx/p/11253497.html

时间: 2024-10-03 10:11:20

opencv实现人脸识别(二) 人脸图像采集模块的相关文章

基于node.js人脸识别之人脸对比

基于node.js人脸识别之人脸对比 Node.js简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型. Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP.Python.Perl.Ruby 等服务端语言平起平坐的脚本语言. 发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装. Node对一些特殊用

虹软人脸识别3.0 - 图像数据结构介绍(C++)

从虹软开放了2.0版本SDK以来,由于具有免费.离线使用的特点,我们公司在人脸识别门禁应用中使用了虹软SDK,识别效果还不错,因此比较关注虹软SDK的官方动态.近期上线了ArcFace 3.0 SDK版本,确实做了比较大的更新.上一篇主要介绍了关于Android平台算法的改进,本篇将介绍一下关于Windows平台算法的更新. 特征比对支持比对模型选择,有生活照比对模型和人证比对模型 识别率.防***效果显著提升 特征值更新,升级后人脸库需重新注册 人脸检测同时支持全角度及单一角度 新增了一种图像

虹软人脸识别3.0 - 图像数据结构介绍(Android)

从虹软开放了2.0版本SDK以来,由于具有免费.离线使用的特点,我们公司在人脸识别门禁应用中使用了虹软SDK,识别效果还不错,因此比较关注虹软SDK的官方动态.近期上线了ArcFace 3.0 SDK版本,确实做了比较大的更新.首先本篇介绍一下关于Android平台算法的更新内容,下一篇将针对Windows平台的算法更新展开介绍. 特征比对支持比对模型选择,有生活照比对模型和人证比对模型 识别率.防***效果显著提升 特征值更新,升级后人脸库需重新注册 Android平台新增64位的SDK 图像

干货 | AI人脸识别之人脸搜索

本文档将利用京东云AI SDK来实践人脸识别中的人脸搜索功能,主要涉及到分组创建/删除.分组列表获取.人脸创建/删除.人脸搜索,本次实操的最终效果是:创建一个人脸库,拿一张图片在人脸库中搜索出相似度最高的一张,实现1:N的人脸识别,操作示意图如下: 一.准备工作 1. 创建AK/SK 登陆京东云控制台:https://console.jdcloud.com,点击右上角账户AccessKey 管理,接着如图点击创建Access Key 2. 购买人脸搜索服务 人脸搜索通过 API 调用次数计费,目

OpenCV+Python 文字识别(重点图像透视变换)

1 # Author:Winter Liu is coming! 2 import cv2 as cv 3 import numpy as np 4 import pytesseract 5 6 7 # 预处理,高斯滤波(用处不大),4次开操作 8 # 过滤轮廓唯一 9 def contour_demo(img): 10 gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) 11 gray = cv.GaussianBlur(gray, (5, 5), 1) 12

实验报告: 人脸识别方法回顾与实验分析 【OpenCV测试方法源码】

趁着还未工作,先把过去做的东西整理下出来~   Github源码:https://github.com/Blz-Galaxy/OpenCV-Face-Recognition (涉及个人隐私,源码不包含测试样本,请谅解~) 对实验结果更感兴趣的朋友请直接看 第5章 [摘要]这是一篇关于人脸识别方法的实验报告.报告首先回顾了人脸识别研究的发展历程及基本分类:随后对人脸识别技术方法发展过程中一些经典的流行的方法进行了详细的阐述:最后作者通过设计实验对比了三种方法的识别效果并总结了人脸识别所面临的困难与

OpenCV图像处理以及人脸识别

OpenCV基础 OpenCV是一个开源的计算机视觉库.提供了很多图像处理常用的工具 批注:本文所有图片数据都在我的GitHub仓库 读取图片并显示 import numpy as np import cv2 as cv original = cv.imread('../machine_learning_date/forest.jpg') cv.imshow('Original', original) 显示图片某个颜色通道的图像 blue = np.zeros_like(original) bl

OpenCV 和 Dlib 人脸识别基础

00 环境配置 Anaconda 安装 1 下载 https://repo.anaconda.com/archive/ 考虑到兼容性问题,推荐下载Anaconda3-5.2.0版本. 2 安装 3 测试 在键盘按 Win + R, 输入 cmd,回车,将会打开cmd窗口,输入 activate base, 如下所示,表明anaconda环境系统变量无误. IDE PyCharm的安装 自行百度搜索下载并破解. http://idea.lanyus.com/ OpenCV安装 C:\Users\A

Dlib+OpenCV深度学习人脸识别

目录(?)[+] DlibOpenCV深度学习人脸识别 前言 人脸数据库导入 人脸检测 人脸识别 异常处理 Dlib+OpenCV深度学习人脸识别 前言 人脸识别在LWF(Labeled Faces in the Wild)数据集上人脸识别率现在已经99.7%以上,这个识别率确实非常高了,但是真实的环境中的准确率有多少呢?我没有这方面的数据,但是可以确信的是真实环境中的识别率并没有那么乐观.现在虽然有一些商业应用如员工人脸识别管理系统.海关身份验证系统.甚至是银行人脸识别功能,但是我们可以仔细想

OpenCV — 人脸识别

前段时间弄过一下人脸识别相关的东西,记录一下 撰写不易,转载需注明出处:http://blog.csdn.net/jscese/article/details/54409627本文来自 [jscese]的博客! 概念 FaceDetect 人脸检测 在一张图像中判断是否存在人脸并找出人脸所在的位置 FaceRecognize 人脸识别 在人脸检测的基础上收集人脸数据集合进行处理保存信息,将输入人脸与保存的信息进行比对校验,得到是否为其中某个人脸 特征值 以某种特定规则对输入源进行处理得到具有唯一