Qt-OpenCV学习笔记--人脸识别--基于Haar特征的cascade分类器

news2024/11/20 6:19:24

概述

基于Haar特征的cascade分类器(classifiers) 是Paul Viola和 Michael Jone在2001年,论文”Rapid Object Detection using a Boosted Cascade of Simple Features”中提出的一种有效的物品检测(object detect)方法。它是一种机器学习方法,通过许多正负样例中训练得到cascade方程,然后将其应用于其他图片。

Haar特征分类器就是一个XML文件,该文件中会描述人体各个部位的Haar特征值。

OpenCV自带一些已经训练好的分类器,比如人脸、眼睛、微笑等。这些文件储存在如下路径中:

opencv/data/haarcascades/

如果想要自己训练分类器,来识别任意物品,可以参照:

Cascade Classifier Training

函数

void cv::CascadeClassifier::detectMultiScale
(
	InputArray 	image,
    std::vector< Rect > & 	objects,
    double 	scaleFactor = 1.1,
    int 	minNeighbors = 3,
    int 	flags = 0,
    Size 	minSize = Size(),
    Size 	maxSize = Size() 
)
image输入图像(CV_8U)
objects输出结果(包含人脸位置的矩形集合)
scaleFactor每次图像缩小的比例(默认1.1)
minNeighbors成功匹配所需要的矩形框的数量(默认为3)
flags

默认为0

 ● CASCADE_DO_CANNY_PRUNING=1

    利用canny边缘检测来排除一些边缘很少或者很多的图像区域
 ● CASCADE_SCALE_IMAGE=2    正常比例检测
 ● CASCADE_FIND_BIGGEST_OBJECT=4    只检测最大的物体
 ● CASCADE_DO_ROUGH_SEARCH=8    初略的检测

minSize最小对象尺寸(小于该值的对象将被忽略)
maxSize最大对象尺寸(大于该值的对象将被忽略)

测试代码

#include "widget.h"
#include "ui_widget.h"

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //创建级联分类器
    CascadeClassifier cascade;
    //载入Haar特征分类器
    cascade.load("C:/opencv/date/haarcascade_frontalface_alt2.xml");

    //创建矩阵
    Mat src,
        dst_gray;
    //载入图像
    src = imread("c:/opencv/zhou.jpg");
    //生成灰度图
    cvtColor(src, dst_gray, COLOR_BGR2GRAY);

    //创建矩形容器
    vector<Rect> rects;
    //识别人脸
    cascade.detectMultiScale(dst_gray,rects,1.1,3,0);

    //绘制矩形框
    Scalar color(0,255,0);

    for(uint i=0;i<rects.size();i++)
    {
        rectangle(src,rects[i],color,2,8);
    }
    //显示
    imshow("src",src);

}

Widget::~Widget()
{
    delete ui;
}

测试结果

参考:

opencv人脸检测_Haar特征分类器实现人脸检测_cascade.detectMultiScale参数详解

使用Haar Cascade 进行人脸识别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

G1D21-作业-AttacKGSVMkg_book偷懒哈哈哈

唔~咖啡泡出来好好看呀&#xff01; 一、写作业 第一件事是将昨天读的NER综述补充到作业之中~大概30min 50分钟&#xff0c;补充完了思维导图和文档&#xff0c;明确了下一步论文的阅读方向——NER的综述/网安NER具体技术类文章&#xff08;找找最新的叭&#xff09;。 二、…

2022 IDEA大会引领科技创新趋势 沈向洋团队重磅发布低空经济白皮书

11月22日&#xff0c;2022 IDEA大会在深圳顺利开幕。大会由深圳市科技创新委员会、深圳市人才工作局和深圳市福田区人民政府指导&#xff0c;粤港澳大湾区数字经济研究院&#xff08;International Digital Economy Academy&#xff0c;简称“IDEA研究院”&#xff09;主办。 …

leetcode 216. 组合总和 III

文章目录题目思考代码和注释总结题目 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 来源&…

【图像分类】Efficientnet的学习

文章目录1. Efficientnet的学习1.1 网络模型1.2 MBConv卷积块1.3 模型规模1.4 模型训练方式2. Efficientnet-pytorch代码3.参考1. Efficientnet的学习 论文&#xff1a;https://arxiv.org/abs/1905.11946 1.1 网络模型 主要结构&#xff1a; 基线模型EfficientNet-B0Effici…

ImmunoChemistry艾美捷Annexin DNA损伤ELISA试剂盒方案

使用ImmunoChemistry艾美捷DNA损伤&#xff08;8-OHdG&#xff09;ELISA试剂盒定量尿液、细胞培养物、血浆和其他样品基质中的8-OHdG。该试剂盒提供了快速的培养时间、稳定的试剂和用户友好的方案。使用吸光度板读取器分析结果。 8-羟基-2-脱氧鸟苷&#xff08;8-OHdG&#xff…

开放式激光振镜运动控制器:C++ 快速调用图形库应用

今天&#xff0c;正运动小助手给大家分享一下开放式激光振镜运动控制器&#xff1a;C快速调用图形库应用&#xff0c;本文以二维码打标、文本打标、矢量图形打标为例&#xff0c;解决用户在激光打标时需要进行各种复杂的操作和函数库调用时容易出现的错误问题。 01 ZMC408SCAN…

牛客网语法篇练习复合类型(一)

1.试计算在区间1 到n 的所有整数中&#xff0c;数字x&#xff08;0 ≤ x ≤ 9&#xff09;共出现了多少次&#xff1f; 例如&#xff0c;在1到11 中&#xff0c;即在1、2、3、4、5、6、7、8、9、10、11 中&#xff0c;数字1 出现了4 次。 n,x list(map(int,input().split())) …

CSS的两种渐变

线性渐变和径向渐变 几个常见的例子效果 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>.a{font-size: 20px;width: 100%;height: 50px;margin: 10px;background-image: linear-gradient(r…

应急监管双重预防机制数字化管理解决方案

新《安全生产法》&#xff0c;将组织建立并落实双重预防工作机制写入生产经营单位主要负责人职责中&#xff0c;双重预防机制建设已上升到法律的高度。2021 年 12 月 31 日国务院安委会印发《全国危险化学品安全风险集中治理方案》&#xff0c;将推进基于信息化的危险化学品企业…

大二Web课程设计——海贼王中乔巴专题漫画(可以很好的应付老师的作业)HTML+CSS

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

Baklib帮助中心|如何设置好客户服务帮助您的客户?

在如今这个高度智能化的时代&#xff0c;很多人已经习惯了靠自己解决问题&#xff0c;所以当人们浏览网页、使用某件商品时&#xff0c;首先想到的不是客户服务&#xff0c;而是服务中心。 那么&#xff0c;您如何设计帮助中心帮助您的客户&#xff1f;这是大多数公司希望解决…

工程项目管理的主要内容都是什么?

工程项目资金管理组织工作主要就文本是什么&#xff1f; 1&#xff0e;物业公司的资金管理组织工作&#xff08;工程建设建筑工程&#xff09; 物业公司的资金管理组织工作是全过程的&#xff0c;主要就包括工程项目重大决策和实行期的全过程&#xff0c;也即从基本建设工程项…

【图文教程】Centos 7下安装Hadoop

环境说明&#xff1a; 系统&#xff1a;Centos7 在VM中安装的 hadoop版本&#xff1a;2.7.7 JDK&#xff1a;1.8 注意&#xff1a;Hadoop需要Java环境的。记得安装Java环境 PS&#xff1a;Centos JDK安装 mkdir /data1&#xff1a;上传jdk的tar.解压 2&#xff1a;修改/e…

vulntarget-b靶场详细通关记录

vulntarget-b靶场详细通关记录 前言 这个靶场打了好几天才打下来&#xff0c;在上线msf和免杀过火绒还有psexec横向移动卡中了很久。而且这个靶场的通关资料较少&#xff0c;吐槽一下网上的相关文章很多关键步骤都不写而且复现不成功。以下将记录个人通关vulntarget-b靶场的详…

简述二进制码、十进制码、BCD码、十六进制码转换的算法

进制转换简述二进制码、十进制码、BCD码、十六进制码转换的算法把四字节 BCD 码 5287 转换为十六进制码 14A7H简述二进制码、十进制码、BCD码、十六进制码转换的算法 ①二进制转十进制&#xff1a;把二进制的“1”&#xff0c;从右边第一个开始按2的1次方&#xff0c;2的2次方…

如何使用轻量应用服务器自带的Cloudreve应用镜像搭建属于自己的云网盘?

Cloudreve是一款开源的网盘软件&#xff0c;支持服务器本机、腾讯云COS等多种存储方式&#xff0c;提供离线下载、拖拽上传、在线预览等功能&#xff0c;可以帮助用户快速搭建个人或多人使用的网盘系统。腾讯云轻量应用服务器 Cloudreve应用镜像集合了Cloudreve、Nginx、MariaD…

【Tensorboard】工具使用细节记录,实现训练数据保存及可视化

目录 1 导入tensorboard-前提安装tensorboard&#xff01; 2 确定存储位置 3 作为预训练参数加载函数 4 调用加载函数 5 保存训练模型参数 6 tensorboard可视化-环境&#xff1a;ubuntu 【学习资源】from torch.utils.tensorboard import SummaryWriter导入不成功问题_…

[附源码]计算机毕业设计JAVA考研部落

[附源码]计算机毕业设计JAVA考研部落 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven…

算法刷题—树

1.什么是树 1.1树的概念 树(Tree)是n(n>0)个节点的有限集,n0称为空树。 在任意一个棵非空树中: 1.有且仅有一个特定的称为根(Root)的结点; 2.当n>1时,其余节点可以分为m个(m>0)互不相交的T1,T2.....Tm其中每一个集合本身也是一课树并且称为根的子树(SubTree) 注: 在一…

分布式文件存储系统minio

结构化数据&#xff1a;也称作行数据&#xff0c;是由二维表结构来逻辑表达和实现的数据&#xff0c;严格地遵循数据格式与长度规范&#xff0c;主要通过关系型数据库进行存储和管理。 特点&#xff1a;高度组织化和格式化&#xff0c;可以用二维表结构来逻辑表达和实现的数据…