Python OpenCV 人脸识别

article/2025/10/26 9:43:13

简单运用Python OpenCV对图片进行人脸识别,

我们先看效果及代码:

 

import cv2img1 = cv2.imread('6.jpeg')
gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
face_detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
faces = face_detector.detectMultiScale(gray, 1.1, 3,cv2.CASCADE_SCALE_IMAGE,(50,50),(100,100))
for (x, y, w, h) in faces:cv2.rectangle(img1, (x, y), (x + w, y + w), (0, 255, 0),2)cv2.imshow("img",img1)
cv2.waitKey(0) 

看着几行代码也是很简单,挨着介绍一下,方便于理解

import cv2  即导入opencv2模块,导入才能使用opencv,类似于C语言中的头文件。

img1 = cv2.imread('6.jpeg') 通过cv2模块把图片读取到img1中,需要指明图片的路径,因为图片与代码在同一目录,因此可以不写路径。

gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) 将图片修改为灰度图像输出到gray,使用灰度图像识别速度会快一些,如果不使用灰度图像也可以。

face_detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") 导入正面人脸检测的级联分类器,若自己有训练好的人脸识别文件也可以将此xml替换。替换成其他文件也可用时识别其他内容,不仅仅局限与人脸。

faces = face_detector.detectMultiScale(gray, 1.1, 3,cv2.CASCADE_SCALE_IMAGE,(50,50),(100,100)) 进行人脸识别;gray是传入的灰度图片,也可以用未进行图像转换的img11.1参数可以决定两个不同大小的窗口扫描之间有多大的跳跃,这个参数设置的大,则意味着计算会变快,但如果窗口错过了某个大小的人脸,则可能丢失物体,默认为1.1;默认值为3表明至少有3次重叠检测,我们才认为人脸确实存;cv2.CV_HAAR_SCALE_IMAGE   按比例检测;(50,50) 寻找人脸的最小区域;(100,100)寻找人脸的最大区域。

for (x, y, w, h) in faces:
    cv2.rectangle(img1, (x, y), (x + w, y + w), (0, 255, 0),2)  
读取人脸识别的位置与响应的区域大小,并画出来。rectangle为画矩形;画在img1图片中;(x, y)矩形起点坐标;(x + w, y + w)矩形终点坐标;(0, 255, 0) RGB;2为线条粗细。

cv2.imshow("img",img1) 显示画好矩形的人脸识别图片。

cv2.waitKey(0) 等待按键,没有此行图片会一闪而过。

文件路径:需要的文件在同一目录中。

 识别的关键函数与相关参数,可通过调节参数减小识别误差:

detectMultiScale(const Mat& image, double scaleFactor=1.1,int minNeighbors, int flag,minSize, maxSize)

1.image为输入的图像。

2.scaleFactor:  其原理是系统会以不同的区块大小对图片进行扫描,再进行特征对比。参数无特别需求,一般设置为1.1。

3.minNeighbors  此为控制误检率参数,默认值为3。

4.flag此参数设置检测模式,可取值如下:

cv2.CV_HAAR_SCALE_IMAGE   按比例检测

cv2.CV_HAAR_DO_CANNY_PRUNING  利用Canny 边缘检测器排除一些边缘很少或很多的图像区域

cv2.CV_HAAR_FIND_BIGGEST_OBJECT   只检测最大物体

cv2.CV_HAAR_DO_ROUGH_SEARCH  只做初步检测。

5.minSize  设置最小的识别区块。

6.maxSize  设置最大的识别区块,低于minSize和高于maxSize的话就不会检测出来。 


http://chatgpt.dhexx.cn/article/Djx6IhME.shtml

相关文章

OpenCV-Python:简单实现人脸识别

安装 pip install numpy pip install opencv-python pip install opencv-contrib-pythonOpenCV主要模块 core 核心功能模块。该模块主要包含 OpenCV库的基础结构以及基本操作,例如OpenCV基础数据结构、绘图函数、数组操作相关函数、动态数据结构等calib3d&#xff…

[计算机毕业设计]opencv的人脸面部识别

前言 📅大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过…

OpenCV人脸检测及识别(深度学习)

简介 最近做了一个人脸检测以及识别的程序,很多的文章都有比较详细的叙述,可以自行查找。但是个人觉得大部分文章都太细致了以至于初学者无法快速领会主干(不是否认质量),是侧重点问题。所以结合我遇到了一些问题&…

使用OpenCV简单实现人脸识别

简介 OpenCV是一个非常强大的计算机视觉库,现有的一系列特征检测和特征匹配算法,有很大一部分都已经在OpenCV的库中得以实现,故此我们只需调用OpenCV库中函数即可简单实现人脸识别。 开发环境 版本:Python 3.6 编辑器&#xff…

OpenCv 之(图片人脸识别)和 (摄像头读入)

##先来张人脸识别效果图: ##1、概述 人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术…

(项目笔记)opencv人脸识别

Haar级联: Haar特征:边缘特征,线性特征,中心环绕特征,对角线特征 这些特征组合为特征模板,特征模板里有白色和黑色矩形,模板特征即为白色矩形像素和减去黑色矩形像素和。 Haar 特征的提取简…

【opencv】基于opencv实现人脸识别,原理代码部分

上一部分我们解决了环境问题,这一部分我们可以开始上代码,环境没有配好的可以参照上一篇博客:环境搭建解决: 下面先说一下原理: 一.原理部分 本文基于opencv来实现人脸识别,大致实现流程可以描述为&#…

基于opencv的人脸识别和检测

人脸识别作为一个热门项目,目前有多种方法实现,利用python和opencv来实现,是一个比较简单的项目。 1.环境配置 windows平台 python版本:3.8.6 pycharm版本:2019.1.2 Opencv版本:4.5.3 安装了python后…

C++ OpenCV【人脸识别人眼识别】

此文章仅对人脸位置进行检测&#xff0c;使用haar级联的方法[OpenCV自带] #include <iostream> #include <opencv2/opencv.hpp> #include <vector> #include <cstdio> using namespace std; using namespace cv;//定义7种颜色&#xff0c;用于标记人脸…

通过opencv实现简单的人脸识别

文章目录 通过opencv实现简单的人脸识别1.环境配置2.收集数据集3.人脸数据的处理4.通过神经网络训练模型5.进行人脸识别6.总结 通过opencv实现简单的人脸识别 ​ 网上有很多通过opencv实现的简单人脸识别&#xff0c;本文于其他文章差别不大&#xff0c;仅为作者复现代码后的一…

基于OpenCv的人脸识别(Python完整代码)

实验环境&#xff1a;python 3.6 opencv-python 3.4.14.51 建议使用 anaconda配置相同环境 背景 人脸识别步骤 图1&#xff1a;人脸识别流程图 人脸采集 采集人脸图片的方法多种多样&#xff0c;可以直接从网上下载数据集&#xff0c;可以从视频中提取图片&#xff0c;还可以…

使用opencv实现简单的人脸识别

一、opencv模块的使用 1、简介 opencv-python是一个python绑定库&#xff0c;旨在解决计算机视觉问题。使用opencv模块&#xff0c;可以实现一些对图片和视频的操作。 2、安装 安装opencv之前需要先安装numpy, matplotlib。然后使用pip安装opencv库即可。 3、导入 使用im…

opencv实现人脸识别(c++实现)

1 说明 本文章基于opencv VS2015 实现人脸检测 2 效果 可以直接打开摄像头对人脸进行识别&#xff0c;这些标识框也会跟随你的人脸移动。隐私问题&#xff0c;我这里对图片进行了识别。 3 相关类及函数介绍 opencv中文文档 3.1 cv::VideoCapture 官方文档说明 功能 &am…

11 OpenCV图像识别之人脸识别

文章目录 1 Eigenfaces1.1 建模流程1.2 示例代码 2 Fisherfaces2.1 建模流程2.2 示例代码 3 Local Binary Histogram3.1 建模流程3.2 示例代码 OpenCV 提供了三种人脸识别方法&#xff1a; Eigenfaces Eigenfaces是一种基于PCA&#xff08;Principal Component Analysis&#…

OpenCV人脸识别

OpenCV人脸识别与口罩检测 下载文件 人脸检测 人脸检测的检测方法主要有两类:基于知识(根据眼睛,眉毛,嘴巴,鼻子等器官特征及相互几何位置关系来检测)和基于统计(将人脸看作一个二维像素矩阵,通过大量人脸图像样本构造人脸模式空间,由相似度量判断人脸是否存在). 基于知识的…

【OpenCV】 人脸识别

目录 一&#xff1a;前言 二&#xff1a;人脸识别案例 实现步骤及完整代码 步骤1 灰度化处理 步骤2 将灰度图再次进行 行列压缩 步骤3 直方图均值化 步骤4 使用模型 对每一个像素点遍历 图像甄别 人脸识别案例 源码分享 结果测试&#xff1a;可对人脸框选识别 三&…

OpenCv人脸识别开发实战

一、OpenCV简介 OpenCV&#xff08;全称&#xff1a;Open Source Computer Vision Library&#xff09;&#xff0c;是一个跨平台的计算机视觉库。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。 ​ OpenCV用C语言编写&#xff0c;它的主要接口也是C语言&#…

opencv-人脸识别

人脸识别即程序对输入的图像进行判别是否有人脸&#xff0c;并识别出有人脸的图像所对应的人。即我们常说的人脸识别一般包含了人脸检测和人脸识别两部分。下面对其在opencv中的相应模块进行分别介绍。 在opencv官网中&#xff0c;有许多推荐人脸在线数据集&#xff1a;http:/…

基于opencv的人脸识别

目录 一、OpenCV的简介 1、应用场景 二、人脸识别 1、人脸识别简介 2、人脸识别系统基本组成 三、人脸识别流程 四、主要代码注释 1、人脸采集函数 2、人脸训练函数 3、人脸识别函数&#xff08;注取消语音播报识别会流畅多&#xff09; 五、功能实现 六、演示视频…

最简单体验opencv人脸识别

所需软件&#xff1a;PyCharm 所需硬件&#xff1a;一台电脑 如果没有安装PyCharm&#xff0c;csdn上面搜一下安装教程就行&#xff0c;很简单的。 打开PyCharm&#xff0c;如果没有装opencv&#xff0c;则点击最下面的terminal&#xff0c;在终端下输入pip install opencn-p…