当前位置: 首页 > news >正文

OpenCV识别人脸案例实战

使用级联函数

基本流程

函数介绍

在OpenCV中,人脸检测使用的是cv2.CascadeClassifier.detectMultiScale()函数,它可以检测出图片中所有的人脸。该函数由分类器对象调用,其语法格式为:

objects = cv2.CascadeClassifier.detectMultiScale( image[, scaleFactor[,

 minNeighbors[, flags[, minSize[, maxSize]]]]] )

式中各个参数及返回值的含义为:

  • image:待检测图像,通常为灰度图像。
  • scaleFactor:表示在前后两次相继的扫描中,搜索窗口的缩放比例。
  • minNeighbors:表示构成检测目标的相邻矩形的最小个数。默认情况下,该值为3,意味着有3个以上的检测标记存在时,才认为人脸存在。如果希望提高检测的准确率,可以将该值设置得更大,但同时可能会让一些人脸无法被检测到。
  • flags:该参数通常被省略。在使用低版本OpenCV(OpenCV 1.X版本)时,它可能会被设置为CV_HAAR_DO_CANNY_PRUNING,表示使用Canny边缘检测器来拒绝一些区域。
  • minSize:目标的最小尺寸,小于这个尺寸的目标将被忽略。
  • maxSize:目标的最大尺寸,大于这个尺寸的目标将被忽略。如果maxSize和minSize大小一致,表示仅在一个尺度上查找目标。通常情况下,将该可选参数省略即可。

objects:返回值,目标对象的矩形框向量组。该值是一组矩形信息,包含了每个检测到的人脸所对应矩形框的(x方向位置、y方向位置、宽度、高度)信息。

代码示例

# -*- coding: utf-8 -*-
"""
Created on Sat Feb 17 21:09:07 2024@author: 李立宗公众号:计算机视觉之光知识星球:计算机视觉之光"""import cv2
# ===============1 原始图像处理====================
image = cv2.imread('manyPeople.jpg')
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
# ================2 加载分类器========================
faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# =================3 人脸检测========================
faces = faceCascade.detectMultiScale(gray,scaleFactor = 1.04,minNeighbors = 18,minSize = (8,8))
# ===============4 打印输出的实现=====================
print("发现{0}张人脸!".format(len(faces)))
print("其位置分别是:")
print(faces)
# ==================5 标注人脸及显示=======================
for(x,y,w,h) in faces:cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2) 
cv2.imshow("result",image)
cv2.waitKey(0)
cv2.destroyAllWindows()

检测结果:

学习参考
 

理解并实现OpenCV中的图像平滑技术

OpenCV中的边缘检测技术及实现

参考文献

1、OpenCV轻松入门
李立宗,OpenCV轻松入门,电子工业出版社,2023


2、计算机视觉40例
李立宗,计算机视觉40例,电子工业出版社,2022

相关文章:

OpenCV识别人脸案例实战

使用级联函数 基本流程 函数介绍 在OpenCV中,人脸检测使用的是cv2.CascadeClassifier.detectMultiScale()函数,它可以检测出图片中所有的人脸。该函数由分类器对象调用,其语法格式为: objects cv2.CascadeClassifier.detectMul…...

VOSK——离线语音库

文章目录 识别函数调用添加自定义热词表1. SetWords2. SetLatticeWords3. SetPartialWords使用示例注意1. SetMaxAlternatives2. SetNLSML3. SetSpkModel4. SetGrammar使用示例注意SetLogLevel示例用法注意事项 识别函数调用 在使用Vosk库进行语音识别时,PartialRe…...

ELAdmin 隐藏添加编辑按钮

使用场景 做了一个监控模块,数据都是定时生成的,所以不需要手动添加和编辑功能。 顶部不显示 可以使用 true 或者 false 控制现实隐藏 created() {this.crud.optShow {add: false,edit: false,del: true,download: true,reset: true}},如果没有 crea…...

浅谈Websocket

由于 http 存在⼀个明显的弊端(消息只能有客户端推送到服务器端,⽽服务器端不能主动推送到客户端),导致如果服务器如果有连续的变化,这时只能使⽤轮询,⽽轮询效率过低,并不适合。于是 WebSocket 被发明出来 WebSocket 是⼀种在 Web 应⽤程序中实现双向通信的协议。与传…...

JavaScript闭包详细介绍

文章目录 什么是闭包优点:变量持久化:封装私有变量:模块化:函数工厂: 缺点:内存占用:调试困难:过度使用导致性能下降: 什么是闭包 闭包是指有权访问另一个函数作用域中的…...

pytorch神经网络入门代码

import torch import torch.nn as nn import torch.optim as optim import torchvision import torchvision.transforms as transforms# 定义神经网络结构 class SimpleNN(nn.Module):def __init__(self, input_size, hidden_size, num_classes):super(SimpleNN, self).__init_…...

代码随想录算法训练营第三十四天|860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

860.柠檬水找零 链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 细节: 1. 首先根据题意就是只有5.的成本,然后就开始找钱,找钱也是10.和5. 2. 直接根据10 和 5 进行变量定义,然后去循环…...

Ditto:提升剪贴板体验的宝藏软件(复制粘贴效率翻倍、文本处理好助手)

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、什么是Ditto?二、下载安装三、如…...

【自然语言处理-工具篇】spaCy<2>--模型的使用

前言 之前已经介绍了spaCy的安装,接下来我们要通过下载和加载模型去开始使用spaCy。 下载模型 经过训练的 spaCy 管道可以作为 Python 包安装。这意味着它们是应用程序的一个组件,就像任何其他模块一样。可以使用 spaCy download的命令安装模型,也可以通过将 pip 指向路径或…...

Java之通过Jsch库连接Linux实现文件传输

Java之通过JSch库连接Linux实现文件传输 文章目录 Java之通过JSch库连接Linux实现文件传输1. JSch2. Java通过Jsch连接Linux1. poxm.xml2. 工具类3. 调用案例 1. JSch 官网:JSch - Java Secure Channel (jcraft.com) JSch是SSH2的纯Java实现。 JSch 允许您连接到 ss…...

Nginx七层负载均衡之动静分离

思路: servera:负载均衡服务器 serverb:静态服务器 serverc:动态服务器 serverd:默认服务器 servera(192.168.233.132): # 安装 Nginx 服务器 yum install nginx -y#关闭防火墙和selinux systemctl stop firewalld setenforce 0# 切换到 Nginx 配置文…...

305_C++_定义了一个定时器池 TimerPool 类和相关的枚举类型和结构体

头文件:定义了一个定时器池 TimerPool 类和相关的枚举类型和结构体 #ifndef TIMERPOOL_H #define TIMERPOOL_H #include "rsglobal.h" #include "taskqueue.h" #incl...

大整数因数分解工具——yafu

一、安装 yafu--下载链接 二、配置环境变量,直接从cmd打开 1.找到yafu-x64.exe 所在的文件路径 2.点击设置——系统——系统信息——高级系统设置——环境变量——点击PATH(上下都可以)——新建 添加yafu-x64.exe 所在路径——点击确定 3…...

非关系型数据库(NOSQL)和关系型数据库(SQL)区别详解

前言: 在我们的日常开发中,关系型数据库和非关系型数据库的使用已经是一个成熟的软件产品开发过程中必不可却的存储数据的工具了。那么用了这么久的关系数据库和非关系型数据库你们都知道他们之间的区别了吗?下面我们来详细的介绍一下。 关系…...

7.Cloud-GateWay

0.概述 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/ 1.入门配置 1.1 POM <!--新增gateway--> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-sta…...

【Linux】Framebuffer 应用

# 前置知识 LCD 操作原理 在 Linux 系统中通过 Framebuffer 驱动程序来控制 LCD。 Frame 是帧的意思&#xff0c; buffer 是缓冲的意思&#xff0c;这意味着 Framebuffer 就是一块内存&#xff0c;里面保存着一帧图像。 Framebuffer 中保存着一帧图像的每一个像素颜色值&…...

markdown绘制流程图相关代码片段记录

有时候会使用typora来绘制一些流程图&#xff0c;进行编码之类的工作&#xff0c;在网络搜集了一些笔记&#xff0c;做个记录&#xff0c;方便日后进行复习&#xff0c;相关的记录如下&#xff1a; 每次作图时&#xff0c;代码以「graph <布局方向>」开头&#xff0c;如…...

云计算基础-计算虚拟化-CPU虚拟化

CPU指令系统 在CPU的工作原理中&#xff0c;CPU有不同的指令集&#xff0c;如下图&#xff0c;CPU有4各指令集&#xff1a;Ring0-3&#xff0c;指令集是在服务器上运行的所有命令&#xff0c;最终都会在CPU上执行&#xff0c;但是CPU并不是说所有的命令都是一视同仁的&#xf…...

MySQL数据库⑪_C/C++连接MySQL_发送请求

目录 1. 下载库文件 2. 使用库 3. 链接MySQL函数 4. C/C链接示例 5. 发送SQL请求 6. 获取查询结果 本篇完。 1. 下载库文件 要使用C/C连接MySQL&#xff0c;需要使用MySQL官网提供的库。 进入MySQL官网选择适合自己平台的mysql connect库&#xff0c;然后点击下载就行…...

选择排序和快速排序(1)

目录 选择排序 基本思想 选择排序的实现 图片实现 代码实现 快速排序 基本思想 快速排序的实现 图片实现 代码实现 选择排序 基本思想 每一次从待排序的数据元素中选出最小&#xff08;最大&#xff09;的元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部…...

DanKoe 视频笔记:生产力提升:战术压力与深度工作策略

在本节课中&#xff0c;我们将学习一种结合了“战术压力”与“深度工作”的策略。这套方法帮助一位自称拖延症患者的人在30天内创造了70万美元的收入。我们将拆解其核心原理与具体执行步骤&#xff0c;让初学者也能理解并应用。 概述 拖延常被视为缺点&#xff0c;但本教程提…...

挖漏洞一个月能赚多少钱?挖漏洞入门到精通教程,收藏这一篇就够了

学会网安技术后去挖漏洞一个月能搞多少外快&#xff1f; 现在很多白帽子都是白天上班晚上挖洞&#xff0c;甚至有的人连班都不想上&#xff0c;纯靠挖漏洞来收入&#xff0c;比如说补天上面的这些人&#xff0c;每个月收入较高的都是他们&#xff0c;八成都是在家全职挖洞了。…...

5分钟精通Android系统精简:Universal Android Debloater终极指南

5分钟精通Android系统精简&#xff1a;Universal Android Debloater终极指南 【免费下载链接】universal-android-debloater Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and battery life of y…...

无缝全流程开源项目本地化:技术特性与用户收益深度解析

无缝全流程开源项目本地化&#xff1a;技术特性与用户收益深度解析 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 开源项目本地化是全球化协作时代的关键需求&#xff0c;它不仅关乎用户体验的流畅性&#xff0c;更是项目…...

SAP PP MRP再计划配置详解:从工厂日历到容差设置,手把手教你避开计划混乱

SAP PP MRP再计划配置实战指南&#xff1a;精准控制生产排程的关键参数 在制造业的日常运营中&#xff0c;生产计划的有效性直接关系到交付准时率和库存周转效率。作为SAP PP模块的核心功能之一&#xff0c;MRP&#xff08;物料需求计划&#xff09;的再计划机制扮演着"计…...

户用光伏爆火却被内耗拖垮?

当下户用光伏赛道卷疯了&#xff0c;订单接到手软&#xff0c;但不少光伏公司却陷入“越忙越乱”的内耗困境。从客户咨询、签单、设计安装&#xff0c;到并网运维&#xff0c;全流程环节繁杂、信息密集&#xff0c;亟需多部门高效协同&#xff0c;可很多企业还在靠人工记录、纸…...

如何快速优化Windows性能:Atlas OS完整安装与配置指南

如何快速优化Windows性能&#xff1a;Atlas OS完整安装与配置指南 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas…...

零基础掌握视频生成插件:从安装到高级应用全指南

零基础掌握视频生成插件&#xff1a;从安装到高级应用全指南 【免费下载链接】sd-webui-mov2mov This is the Mov2mov plugin for Automatic1111/stable-diffusion-webui. 项目地址: https://gitcode.com/gh_mirrors/sd/sd-webui-mov2mov 在数字内容创作领域&#xff0c…...

Agent 在人力资源场景能做什么?——深度拆解AI Agent重塑HR全流程的技术路径与实操价值

在2026年的今天&#xff0c;AI Agent&#xff08;智能体&#xff09;已不再仅仅是企业数字化转型的“锦上添花”&#xff0c;而是演变为人力资源&#xff08;HR&#xff09;领域的底层驱动力。从最初的单点辅助工具到如今具备自主规划、工具调用及闭环执行能力的数字员工&#…...

Powershell创建ISO文件全攻略:从基础命令到高级参数详解

PowerShell创建ISO文件全攻略&#xff1a;从基础命令到高级参数详解 在数据迁移、软件分发或系统部署场景中&#xff0c;ISO映像文件因其通用性和完整性验证机制成为首选载体。传统方式依赖第三方工具的时代已经过去&#xff0c;Windows PowerShell作为系统级脚本环境&#xff…...