基于opencv3的人脸检测

2023-11-17

目前opencv3中已经有人脸检测的类了,只要调用函数库的类就行

该程序需要两个xml文件,分别是haarcascade_frontalface_alt.xml和haarcascade_eye_tree_eyeglasses.xml,它们分别是已经通过了大量训练且能检测出人脸和眼睛了,只要调用即可。

#include"opencv2/objdetect/objdetect.hpp"
#include"opencv2/highgui/highgui.hpp"
#include"opencv2/imgproc/imgproc.hpp"
#include"opencv2/core/core.hpp"
#include"iostream"
using namespace std;
using namespace cv;

void detection(Mat frame);
String face_cascade_name = "haarcascade_frontalface_alt.xml";
String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml";
CascadeClassifier face_cascade;
CascadeClassifier eyes_cascade;

int main()
{
    if (!face_cascade.load(face_cascade_name))
        cerr << "Loading haarcascade_frontalface_alt.xml error"<<endl;
    if (!eyes_cascade.load(eyes_cascade_name))
        cerr << "Loading haarcascade_eye_tree_eyeglasses.xml error" << endl;

    VideoCapture capture(0);
    Mat frame;
    while (1)
    {
        capture >> frame;
        if (!frame.data)
            cerr << "Opening capture error!" << endl;
        detection(frame);
        waitKey(15);
    }
    return 0;
}

void detection(Mat frame)
{
    vector<Rect> faces;
    Mat frame_gray;
    cvtColor(frame, frame_gray, COLOR_BGR2GRAY);
    equalizeHist(frame_gray, frame_gray);//直方图均匀化
    face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0 | 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30));//人脸检测
    for (int i = 0; i < faces.size(); i++)
    {
        //用椭圆圈出脸
        Point center(faces[i].x + faces[i].width / 2, faces[i].y + faces[i].height / 2);
        ellipse(frame, center, Size(faces[i].width / 2, faces[i].height / 2), 0, 0, 360, Scalar(255, 0, 255), 2, 8, 0);
        //用圆圈出眼睛
        Mat face_roi = frame_gray(faces[i]);
        vector<Rect> eyes;
        eyes_cascade.detectMultiScale(face_roi, eyes, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30));//在脸中检测眼睛
        for (int j = 0; j < eyes.size(); j++)
        {
            Point eye_center(faces[i].x + eyes[j].x + eyes[j].width / 2, faces[i].y + eyes[j].y + eyes[j].height / 2);
            int radius = cvRound((eyes[j].width + eyes[j].height)*0.25);
            circle(frame, eye_center, radius, Scalar(255, 0, 0), 3, 8, 0);
        }
    }
    //-- 显示最终效果图
    imshow("picture", frame);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于opencv3的人脸检测 的相关文章

  • 如何使用 OpenCV 找到红色区域? [复制]

    这个问题在这里已经有答案了 我正在尝试编写一个检测红色的程序 然而有时它比平常更暗 所以我不能只使用一个值 检测不同深浅的红色的最佳范围是多少 我目前使用的范围是 128 0 0 255 60 60 但有时它甚至检测不到我放在它前面的红色物
  • cv2.cv.BoxPoints(rect) 返回什么?

    rect cv2 minAreaRect largest contour rect rect 0 0 self scale down rect 0 1 self scale down rect 1 0 self scale down rec
  • 如何提取图像中的表格

    我想从图像中提取表格 这个 python 模块https pypi org project ExtractTable https pypi org project ExtractTable 与他们的网站https www extractta
  • 将四边形(四边形)拟合到斑点

    应用不同的过滤和分割技术后 我最终得到如下图像 我可以访问一些轮廓检测函数 这些函数返回该对象边缘上的点列表 或者返回一个拟合的多边形 尽管有很多边 远多于 4 个 我想要一种将四边形适合该形状的方法 因为我知道它是应该是四边形的鞋盒的正面
  • opencv如何使用compareHist函数

    img cv2 imread mandrill png histg cv2 calcHist img 0 None 256 0 256 if len sys argv lt 2 print gt gt sys stderr Usage sy
  • 如何使图像呈现出陈旧、布满灰尘、颜色褪色的外观?

    我有旧画的图像 这些画很旧 布满灰尘 颜色褪色 如图所示here https i stack imgur com xuoEF jpg 如何赋予任何图像这种 旧 外观 我找不到任何过滤器或 openCV 函数来实现这种类型的外观 EDIT 我
  • opencv 视频上的颜色阈值

    I am thresholding for a color range in an opencv video The goal is to seperate the B mode black and white information on
  • 使用相位相关和对数极坐标变换获得旋转位移

    我一直在编写一个脚本 它使用 cv2 计算两个图像之间的旋转位移phaseCorrelate method 我有两张图像 第二张是第一张图像的 90 度旋转版本 加载图像后 我将它们转换为对数极坐标 然后将它们传递到phaseCorrela
  • C++ OpenCV 2.3 中缺少 MoveWindow()

    我正在使用 OpenCV 2 3 的 C 版本 并且正在努力完成一项基本任务 我想做的是创建一个窗口并将其移动到屏幕上的特定位置 例如使用 cv namedWindow My Window 1 cv MoveWindow My Window
  • 为什么这些双精度数的返回值为-1.#IND?

    I have double score cvMatchContourTrees CT1 CT2 CV CONTOUR TREES MATCH I1 0 0 cout lt
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • Opencv未找到所有轮廓

    我试图找到该图像的轮廓 但是该方法查找轮廓只返回1轮廓 轮廓突出显示image 2 我正在努力寻找all外部轮廓就像这些圆圈 里面有数字 我究竟做错了什么 我可以做什么来实现它 image 1 image 2 以下是我的代码的相关部分 th
  • 如何设置K-means openCV c++的初始中心

    我正在尝试使用 OpenCv 和 Kmeans 对图像进行分割 我刚刚实现的代码如下 include opencv2 objdetect objdetect hpp include opencv2 highgui highgui hpp i
  • 如何计算图像中的 RGB 或 HSV 通道组合?

    我使用 python opencv 加载形状为 30 100 3 的图像 现在想要按颜色计算所有颜色的频率 我不是指单个通道 而是指通道组合 含义 3 个频道列表 例如 255 0 0 表示红色 255 255 0 表示黄色 100 100
  • 使用Python的工业视觉相机[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 曲线/路径骨架二值图像处理

    我正在尝试开发一个可以处理图像骨架的路径 曲线的代码 我想要一个来自两点之间骨架的点向量 该代码在添加一些点后结束 我没有找到解决方案 include opencv2 highgui highgui hpp include opencv2
  • 无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件

    我目前正在进行一个涉及读取 mp4 视频文件的项目 我遇到的问题是它在Windows 7机器上使用Python 2 7 32位 OpenCV 2 4 3 cv2 pyd 代码片段如下 try video cv2 VideoCapture v
  • 从图像坐标获取对象的世界坐标

    I have been following this http docs opencv org modules calib3d doc camera calibration and 3d reconstruction html docume
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • OpenCV 跟踪器:模型未在函数 init 中初始化

    在视频的第一帧 我运行一个对象检测器 它返回对象的边界框 如下所示

随机推荐

  • react、umi、dva

    React 一 React的简介 1 介绍 React 是一个用于构建用户界面的 JAVASCRIPT 库 React主要用于构建UI 很多人认为 React 是 MVC 中的 V 视图 React 起源于 Facebook 的内部项目 用
  • Mac升级Catalina(10.15)后 clion不能运行,提示「xcrun: error: invalid active developer path ...」

    Mac升级Catalina 10 15 后 使用clion 运行失败 提示内容如下 xcrun error invalid active developer path Library Developer CommandLineTools m
  • MQTT-保留消息和遗嘱消息

    遗嘱消息 为什么需要遗嘱消息 MQTT的订阅发布机制 解耦了消息的发送方和接收方 这使我们没有办法获取对端的状态 为了解决该问题 MQTT提供了遗嘱消息 为意外断线的客户端提供了对外发出通知的能力 如何使用遗嘱消息 使用遗嘱消息 客户端需要
  • 【笔记】关于win导入外部动态磁盘时“包名称无效”的解决办法

    网易博客搬家 原贴时间 2015 02 22 一 问题背景 硬盘闲置 电脑重装系统以后装上硬盘 计算机 中无盘符 磁盘管理中显示硬盘为 外部动态磁盘 右键 导入外部磁盘 提示 包名称错误 二 尝试过程 1 重启电脑 无效 2 换sata接口
  • DBeaver教程:连接达梦数据库DM8

    本文介绍如何通过dbeaver连接达梦数据库进行管理 DBeaver 是一个基于 Java 开发 免费开源的通用数据库管理和开发 DBeaver 采用 Eclipse 框架开发 支持插件扩展 并且提供了许多数据库管理工具 ER 图 数据导入
  • linux查看所有文件

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 1 linux文件结构 linux文件结构是树形的 根目录是 其它所有文件都是在
  • OCR加持白描App,让AI成为视障者的眼睛

    现实中 你可以轻松无障碍地阅读各类平面印刷文字以及身边的一切 或许你未曾想过 视障人群该怎么办呢 统计数据显示 中国大约有1700万的视障群体 相当于每100个人中就有超过1位是视障人士 但我们在日常生活中却很少见到他们 那是因为视障群体在
  • 3、ARIMA序列预测Matlab代码、可视化(可做算法对比)

    1 文件包中程序均收集 整理 汇总自网络 2 文件包完整内容 1 ARIMA 功能函数 仅包含一个ARIMA算法函数 需要调用到自己的程序中使用 函数部分代码及预览图 function result ARIMA algorithm data
  • 应用程序本地化

    一 简介 使用本地化功能 可以轻松地将应用程序翻译成多种语言 甚至可以翻译成同一语言的多种方言 如果要添加本地化功能 需要为每种支持的语言创建一个子目录 称为 本地化文件夹 通常使用 lproj作为拓展名 当本地化的应用程序需要载入某一资源
  • pytorch 中register_buffer()

    今天在看DSSINet代码的ssim py时 遇到了一个用法 class NORMMSSSIM torch nn Module def init self sigma 1 0 levels 5 size average True chann
  • Docker网络体系结构:设计可扩展、可移植的Docker容器网络

    原文地址 译者 本人翻译水平有限 目的仅是为了学好Docker 如有错误请见谅 翻译版本 v1 01 将不断优化翻译质量 本文包含以下内容 Docker容器就是将应用及其所依赖运行环境的完整文件系统打成一个包 包括所需代码 运行库 系统工具
  • 一文读懂人脸识别技术

    2019 08 27 17 06 26 本文内容涵盖人脸识别发展历程 市场研究 核心技术 商业应用以及产业落地 个人看法等干货研究 注意 本文干货满满 约有2万7千字 强烈建议大家先收藏后学习 01 发展史 1 人脸识别的理解 人脸识别 F
  • DJANGO增删改查

    https www cnblogs com yuanlianghong p 10987877 html 一 Django的工作流 1 用户通过浏览器输入相应的 URL 发起 HTTP 请求 一般是 GET POST 2 Django 接受到
  • 微信小程序:初识微信小程序和前端

    一 前期准备工作 1 申请开发微信小程序 登录微信公众平台 gt 点击 小程序 gt 点击 前往注册 gt 注册成功即可 2 下载微信开发者工具 小程序文档 gt 工具中的下载 gt 下载自己需要的版本 3 在开发者工具中创建项目 这个当中
  • RabbitMQ的高级特性

    RabbitMQ的高级特性 在项目中 有一些无需即时返回且耗时的操作 我们可以将其提取出来 做异步处理 从而节省服务器的请求响应时间 从而提高系统的吞吐量 这就需要使用到MQ 而常见的RabbitMQ就是重中之重 之前说了他的几个常见的用处
  • WebSocket 的使用,和客户端断电,服务器检测断开连接

    WebSocket 的使用 和客户端断电 服务器检测断开连接 服务器用WebSocketServlet 实例化自定义的MessageInbound web xml中配置socket
  • ext4 buddy块分配算法源码剖析

    概述 ext4 buddy块分配算法的函数是ext4 mb regular allocator 阅读本文之前需要先看下ext4 mballoc之buddy算法 nginux的博客 CSDN博客 ext4 mb regular allocat
  • YoloV8改进策略:轻量级的CloFormer助力Yolov8在速度和精度上实现双双提升

    文章目录 摘要 论文翻译 摘要 1 简介 2 相关工作 3 方法 3 1 总体架构 3 2 AttnConv 3 3 不同的局部感知方式 3 4 实现细节 4 实验 4 1 ImageNet1K分类 4 2 COCO目标检测 4 3 ADE
  • C 实现Window/DOS 键盘监听事件

    今天是重新复习C语言实现的第一天 今天想编写C 对Windwos Dos 键盘事件的学习 但是我在安装Visual Studio 2022 没有安装MFC 框架 今天记录下VS 追加 MFC框架 Visual Studio 2022 追加M
  • 基于opencv3的人脸检测

    目前opencv3中已经有人脸检测的类了 只要调用函数库的类就行 该程序需要两个xml文件 分别是haarcascade frontalface alt xml和haarcascade eye tree eyeglasses xml 它们分