OPenCV入门学习笔记(5)人脸检测

2023-10-28

检测的一般步骤
  1. 加载xml级联分类器
  2. 读入图片
  3. 灰度化处理图片
  4. 进行检测
  • 加载xml级联分类器
face_detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
  • 读入图片
img = cv2.imread("lena.jpg",1)
  • 灰度化处理图片
gray = cv2.cvtColor(img,cv2.COLOR_BGRA2GRAY)

解释:这里不进行灰度化也可以进行检测,但是灰度化后准确性会提高。

  • 进行检测
faces = face_detector.detectMultiScale(gray,1.05)

解释:detectMultiScale函数中,第一个参数为需要进行检测的图片,后面的参数为选填,返回一个faces集合,其中包含了起始点坐标及长宽信息。

  • 遍历faces集合,绘制人脸框
for x,y,w,h in faces:
    cv2.rectangle(img, (x,y),(x+w,y+h),(0,255,0),2)

完整代码如下:

import cv2
import numpy as np

img = cv2.imread("lena.jpg",1)
gray = cv2.cvtColor(img,cv2.COLOR_BGRA2GRAY)
face_detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
faces = face_detector.detectMultiScale(gray,1.05)
for x,y,w,h in faces:
    cv2.rectangle(img, (x,y),(x+w,y+h),(0,255,0),2)
cv2.imshow("hunman_face",img)
cv2.waitKey()
cv2.destroyAllWindows()

结果展示:

同样,也可以进行人脸替换,代码如下,

import cv2
import numpy as np

img = cv2.imread("lena.jpg",1)
mask = cv2.imread("doge.jpeg",1)
gray = cv2.cvtColor(img,cv2.COLOR_BGRA2GRAY)
face_detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
faces = face_detector.detectMultiScale(gray,1.05)
for x,y,w,h in faces:
    mask2 = cv2.resize(mask,(w,h))
    img[y:y+h,x:x+w] = mask2
cv2.imshow("hunman_face",img)
cv2.waitKey()
cv2.destroyAllWindows()

结果展示:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OPenCV入门学习笔记(5)人脸检测 的相关文章

  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • 如何传递架构以从现有数据帧创建新数据帧?

    要将 schema 传递到 json 文件 我们这样做 from pyspark sql types import StructField StringType StructType IntegerType data schema Stru
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • 如何在 Matplotlib 饼图周围绘制箭头以将每个标签指向圆圈中各自的部分?

    我一直在用 Matplotlib 绘制一些图表 我有一个饼图 想要在图表周围绘制箭头 使每个标签都指向图表 我有一个例子 这是我当前的代码 import matplotlib pyplot as plt plt rcParams font
  • 在 Celery 任务中调用 Google Cloud API 永远不会返回

    我正在尝试拨打外部电话Google Cloud Natural Language API从一个内Celery任务 使用google cloud python包裹 问题是对 API 的调用永远不会返回 挂起 celery task def g
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • OKL4 的故事

    转自 弯曲评论 编者注 Gernot 的这篇 blog 介绍了一些 NICTA 和 OK lab 的故事 关于 NICTA 和 OK lab 的来历 读者如果感兴趣 可以阅读我以前写的这篇文章General Dynamics 收购 Open
  • java.util.ConcurrentModificationException

    增强for底层用了迭代器 会导致遍历的时候修改集合中的元素出现java util ConcurrentModificationException 这是因为ArrayList底层维护了一个modCount用于记录list集合修改的次数 每操作
  • 揭示常见的重构误区

    作者 Danijel Arsenovski译者 张逸 公正地说 NET社区对于重构技术的研究起步太晚 直到今天 Net开发的旗舰产品Visual Studio仍然无法在C 中突破重构的界限 http www martinfowler com
  • java一朵玫瑰花代码

    这是一个简单的 Java 程序 画一朵玫瑰花 import java awt import java awt geom import javax swing public class Rose extends JFrame public R
  • C++动态库制作

    简介 概念 Linux系统 Windows系统中都有静态库 动态库 静态库是链接阶段与某程序指令链接到一块 打包为一个整体 而动态库是程序执行过程中动态装载到内存中的 链接时不打包 命名规则 Linux 静态库 libxxx a 动态库 l
  • [数据分析]-目标检测python删除xml文件中指定name的object类别

    1 问题描述 在整理数据集的时候 由于部分数据集来自网络 其一张图片标注了多个类别 而我们只想使用其中的某些类别 如果不去管那些无效类别 在训练时可能会出错 这就需要我们读取xml文件 根据指定的name名称 删除掉无效的object标注
  • android 4.4中的流媒体渲染过程

    第一次写blog 只是为了记下学习的过程 android中东西很多 架构和流程都很复杂 经常发现以前学习过的很多东西 即使当时看明白没多久就忘记了 只能重新拾起再看 于是想起blog这个东东 写下来总不会忘记 也和别人一起共享 以下基于an
  • 多种马尔可夫链预测方法

    一 基于绝对分布的马尔可夫链预测 步骤1 对历史数据进行分组 步骤2 确定观测值的状态 写出频数矩阵 nij i j E和一步转移概率矩阵 fij i j E 其中fij nij n 1 其中n为样本容量 当n 时 可用频数估计概率 从而得
  • tensorflow2.0(三)----循环神经网络(RNN)

    class DataLoader def init self path tf keras utils get file nietzsche txt origin http s3 amazonaws com text data with op
  • 排序子序列

    问题描述 将一段数组分为若干个排序子序列 排序子序列就是非递增或非递减的排序序列 然后输出至少可以分为几个排序子序列 解决方法 输入数组之后 开始遍历数组 如果数组满足非递增或者非递减 就进入对应的条件判断 然后此时如果i 1的元素依然满足
  • javascript构造函数如果没有形参允许省略圆括号

    javascript构造函数如果没有形参允许省略圆括号 var o new Object var o new Object 两条语句完全等价
  • element-ui表单校验

    默认表单校验 在最外层
  • 【业务功能篇82】微服务SpringCloud-ElasticSearch-Kibanan-docker安装-Nginx安装-进阶实战

    四 ElasticSearch进阶 https www elastic co guide en elasticsearch reference 7 4 getting started search html 1 ES中的检索方式 在Elas
  • ubuntu重装NVIDIA显卡(经过记录)遇到问题到卸载ubuntu再到成功安装

    2019 3 10 本来准备升级英伟达官方驱动下载搭配合适CUDA cuDNN GPU tensorflow 网上教程很多 按照教程下载了显卡匹配的最新驱动 卸载了安装ubuntu后在附加驱动里面自动下载的官方驱动390版本 准备禁止X W
  • 准确记录用户观看视频内容时长

    文章目录 问题的产生 一 从最简单的开始 二 天真可爱法 三 录点法 四 打点法 五 暴力打点法 六 小结 七 大结 问题的产生 to be or not to be that is a question 不是问题解决不了 只是你自己不够努
  • 事件派发代码

    bool QCoreApplication sendEvent QObject receiver QEvent event Q TRACE QCoreApplication sendEvent receiver event event gt
  • 没有扩容机器,抗住了70多倍的流量增长

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 作者 黄希彤 腾讯云专家工程师 从2012年开始 我们就吧腾讯公司内各个业务的404页面导流给宝贝回家 从2013年开始 我们更开放了404寻亲接入给第三方网站 这些导流给宝贝回家论坛
  • 第14节 在VS中关闭安全周期检查sdl

    项目 gt 属性 gt C C gt 常规 gt SDL检查 gt 否
  • C语言中符号表示什么意思?

    C语言中 gt gt lt lt 分别表示什么意思 举例说明 1 C语言中的 gt gt 意思为 右移后赋值 代码示例为 x 8 x gt gt 3 右移后结果为 00000000 00000000 00000000 00000001 2
  • OPenCV入门学习笔记(5)人脸检测

    检测的一般步骤 加载xml级联分类器 读入图片 灰度化处理图片 进行检测 加载xml级联分类器 face detector cv2 CascadeClassifier haarcascade frontalface default xml