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

快速入手-基于python和opencv的人脸检测

1、安装库

pip install opencv-python

如果下载比较卡的话,指向国内下载地址:

pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

2、下载源码

https://opencv.org/

windows11对应的版本下载: https://pan.baidu.com/s/1yLt6KYCuycbPYMD1DavYqA?pwd=v4w4 提取码: v4w4 

3、安装到制定目录

D:/PythonProject/opencv-4.11.0-install/

4、人脸检测代码

# 导入cv模块
import cv2 as cv# 检测函数
def detect_face():gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)face_cascade = cv.CascadeClassifier("D:/PythonProject/opencv-4.11.0-install/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml")# faces = face_cascade.detectMultiScale(gray)faces = face_cascade.detectMultiScale(gray, 1.05, 5, 0, (50, 50), (300, 300))for x, y, w, h in faces:cv.rectangle(img, (x, y), (x + w, y + h), color=(255, 0, 0), thickness=2)cv.imshow("result_img", img)# 读取图片
img = cv.imread("mans.jpg")
detect_face()
# 等待
while True:if ord("q") == cv.waitKey(0):break
cv.waitKey(0)
# 释放内存
cv.destroyAllWindows()

说明:detectMultiScale   是 OpenCV 中用于检测图像中目标(如人脸)的函数,通常与 Haar 特征分类器(如   CascadeClassifier  )一起使用。本次使用 Haar 分类器检测灰度图像gray中的人脸。以下是   detectMultiScale   函数的详细说明:

detectMultiScale(image, scaleFactor, minNeighbors, flags, minSize, maxSize)

参数说明

1.   image  : 输入图像,通常是灰度图像(  cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)  )。其中image是灰度图像。

2.   scaleFactor  :每次图像缩放的比例因子。它用于控制图像金字塔的缩放比例。1.05   表示每次图像缩放的比例为 1.05。较小的值(如 1.05)会检测到更多的小目标,但计算量会增加;较大的值(如 1.2)会检测到较大的目标,但可能会漏掉较小的目标。

3.   minNeighbors  : 每个目标的邻近目标数量。这个参数用于控制检测的严格程度。较高的值会减少误检测,但可能会漏掉真实的目标。5 表示每个目标至少需要有 5 个邻近目标。

4.   flags  :用于指定检测过程中的一些选项。通常可以设置为   0   或   cv2.CASCADE_SCALE_IMAGE  。0   表示使用默认设置。

5.   minSize  :检测目标的最小尺寸(宽和高)。小于这个尺寸的目标将被忽略。(50, 50)   表示最小尺寸为 50×50 像素。

6.   maxSize  :检测目标的最大尺寸(宽和高)。大于这个尺寸的目标将被忽略。 (300, 300)   表示最大尺寸为 300×300 像素。

返回值 faces  :• 返回一个矩形列表,每个矩形表示检测到的目标(如人脸)的位置。每个矩形是一个包含四个值的元组   (x, y, w, h)  ,分别表示矩形的左上角坐标   (x, y)   和矩形的宽度   w   和高度   h  。

5、识别效果


文章转载自:

http://M9Cz6uBY.xhhqd.cn
http://EIpY6Zq8.xhhqd.cn
http://vSvGgGGI.xhhqd.cn
http://rLqWZCSm.xhhqd.cn
http://YXKgrL8a.xhhqd.cn
http://zdPBEmPD.xhhqd.cn
http://YJ9u8d55.xhhqd.cn
http://e2b4lZ9a.xhhqd.cn
http://QqAIq7RL.xhhqd.cn
http://9ZdIWXzv.xhhqd.cn
http://HX1O9GuY.xhhqd.cn
http://5qJQclAO.xhhqd.cn
http://LJ6bZ0qZ.xhhqd.cn
http://RrTZnltY.xhhqd.cn
http://lcAktHyh.xhhqd.cn
http://bnPCTtdl.xhhqd.cn
http://HmYI4baM.xhhqd.cn
http://yEUkbGVv.xhhqd.cn
http://qDZCpy5G.xhhqd.cn
http://D6F1WEbw.xhhqd.cn
http://N58KtazO.xhhqd.cn
http://1K3CdmvH.xhhqd.cn
http://NhuywnDm.xhhqd.cn
http://jednIiel.xhhqd.cn
http://86L3YgRN.xhhqd.cn
http://Sc8mRd1p.xhhqd.cn
http://tNSM0b8D.xhhqd.cn
http://11wJTeKe.xhhqd.cn
http://PH3tMww1.xhhqd.cn
http://f9FSL0eO.xhhqd.cn
http://www.dtcms.com/a/136754.html

相关文章:

  • Java学习手册:Java锁机制详解
  • 【python】OpenCV—Tracking(10.6)—People Counting
  • Paimon的InternalRow 解析(一)
  • 14.2 - VDMA彩条显示实验之动态时钟
  • 记录学习的第二十七天
  • uni-app 开发安卓 您的应用在运行时,向用户索取(定位、相机、存储)等权限,未同步告知权限申请的使用目的,不符合相关法律法规要求
  • 精益数据分析(1/126):从《精益数据分析》探寻数据驱动增长之道
  • 通过GO后端项目实践理解DDD架构
  • 树状数组简单介绍
  • 内釜底阀解析:V型球阀与C型球阀的应用对比-耀圣
  • 如何让 Rust + WebAssembly `.wasm` 更小更快?从构建配置到源码重构的全流程指南
  • 国产DPU芯片+防火墙,能否引领网络安全新跨越?
  • 使用 Java 8 Stream实现List重复数据判断
  • C# 类型、存储和变量(类型是一种模板)
  • SQL Server 2022 安装常见问题及解决方法
  • AI编程新纪元:GitHub Copilot、CodeGeeX与VS2022的联合开发实践
  • CobaltStrike
  • 工作记录4
  • Spring Boot 中的自动配置原理
  • Flutter使用flutter_driver进行自动化测试
  • Python刷题笔记1
  • Golang|KVBitcask
  • springboot3 cloud gateway 配置websocket代理转发教程
  • [dp14_回文串] 分割回文串 II | 最长回文子序列 | 让字符串成为回文串的最少插入次数
  • 【JavaEE】Spring AOP的注解实现
  • Java大模型MCP服务端开发-数据库查询(智能问数)
  • 基于PLC的停车场车位控制系统的设计
  • Ubuntu 安装 NVIDIA显卡驱动、CUDA 以及 CuDNN工具
  • [ElasticSearch]Suggest查询建议(自动补全纠错)
  • 鸿蒙NEXT开发文件预览工具类(ArkTs)