• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > opencv 做人脸识别 opencv 人脸匹配分析

opencv 做人脸识别 opencv 人脸匹配分析

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了opencv人脸识别,opencv人脸识别代码,opencv人脸识别原理,opencv人脸识别教程,opencv人脸识别程序等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
机器学习
机器学习的目的是把数据转换成信息。
机器学习通过从数据里提取规则或模式来把数据转成信息。

人脸识别
人脸识别通过级联分类器对特征的分级筛选来确定是否是人脸。
每个节点的正确识别率很高,但正确拒绝率很低。
任一节点判断没有人脸特征则结束运算,宣布不是人脸。
全部节点通过,则宣布是人脸。
工业上,常用人脸识别技术来识别物体。

对图片进行识别
参数 filename – 所要读取分类器文件的文件名

CascadeClassifier::empty
检查分类器是否已经载入。

C++: bool CascadeClassifier::empty() const
CascadeClassifier::load
从一个文件读取分类器。

C++: bool CascadeClassifier::load(const string& filename)
参数 filename – 所要读取分类器文件的文件名。文件可以是旧版的HAAR分类器模型也可以是新版的分类器模型。
参数 filename – 所要读取分类器文件的文件名。文件可以是旧版的HAAR分类器模型也可以是新版的分类器模型。

CascadeClassifier::read
读取一个文件存储节点的分类器。

C++: bool CascadeClassifier::read(const FileNode& node)


CascadeClassifier::detectMultiScale
对不同大小的输入图像进行物体识别,并返回一个识别到的物体的矩阵列表。

C++: void CascadeClassifier::detectMultiScale(const Mat& image, vector<Rect>& objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size()) 
参数
  • image – 需要检测的 CV_8U 输入矩阵。
  • objects – 输出vector载体容器用于保存被识别的物体矩阵。
  • scaleFactor – 指定每张图片的缩小比例的参数。
  • minNeighbors – 指定每个候选矩阵至少包含的邻近元素个数。
  • flags – 与旧版级联分类器模型函数cvHaarDetectObjects的flags相同. 此参数不被用于新版模型。
  • minSize – 最小可能的对象的大小,小于的对象将被忽略。
  • maxSize – 最大可能的对象的大小,大于的对象将被忽略。

CascadeClassifier::setImage
设置被用于检测的图像。

C++: bool CascadeClassifier::setImage(Ptr<FeatureEvaluator>& feval, const Mat& image)
参数
  • feval – 用于特征计算的特征求值程序的指针。
  • image – 需要进行特征检测的 CV_8U 输入矩阵。

这个函数将在每张图片中被 CascadeClassifier::detectMultiScale() 自动调用。 但如果你想在不同位置手动使用 CascadeClassifier::runAt(),你需要先调用该函数,使得图像被积分计算。

CascadeClassifier::runAt
在指定点运行检测。

C++: int CascadeClassifier::runAt(Ptr<FeatureEvaluator>& feval, Point pt, double& weight) 
参数

feval – 用于特征计算的特征求值程序。

pt – 指定检测窗口左上角的点。窗口的大小和检测的图片大小一致。


如果级联分类器检测到给定的位置中的一个对象,该函数返回1。否则,它会返回已被否决的候选区域在哪个阶段的否定的指数。

使用CascadeClassifier::setImage() 设置图像的检测工作。

代码注释:

参数
  • src – 输入图像:8位无符号,16位无符号(CV_16UC...),或单精度浮点数据类型。
  • dst – 输出图像,与输入图像相同大小、深度。
  • code – 颜色空间转换代码。
  • dstCn – 目标图像的通道数,当该参数为0时,则通道树由src和code自动得出。

该函数将输入图片从一个色彩空间转到另一个色彩空间。当从RGB颜色空间进行变换时,应明确指定的信道的顺序(RGB或BGR)。值得注意,在OpenCV的默认颜色格式中,通常被称为作为RGB,但实际上是BGR(字节是相反的)。因此,在一个标准的(24位)的彩色图像的第一个字节是一个8位的蓝色分量,第二个字节将是绿色的,第三个字节将是红色的。而第四,第五,和第六字节,则是第二像素(蓝,然后绿色,然后红色),依此类推。

R、G和B 通道通常信道值范围:

CV_8U:0 — 255
CV_16U:0 — 65535
CV_32F:0 — 1
线性变换的情况下,有没有范围是无所谓的。但是,在一个非线性变换的情况下,输入的RGB图像应被归为适当的值范围内,以得到正确的结果。例如,如果你有一个32位浮点图像直接转换成一个8位的图像而没有任何缩放,那么它将有0到255的数值范围,而这并不能准确0..1所有浮点数的值。所以,你需要之前调用cvtColor,进行图像缩放。

代码注释:
cvtColor( frame, fram
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • opencv 做人脸识别 opencv 人脸匹配分析

相关文章

  • 2017-05-28C++ 初始化列表详解及实例代码
  • 2017-05-28枚举和宏的区别详细解析
  • 2017-05-28C语言 指针数组详解及示例代码
  • 2017-05-28C++设置系统时间及系统时间网络更新的方法
  • 2017-05-28C++类中的常数据成员与静态数据成员之间的区别
  • 2017-05-28linux系统中c++写日志文件功能分享
  • 2017-05-28结合C++11新特性来学习C++中lambda表达式的用法
  • 2022-04-30C语言rewind和fseek函数的用法详解(随机读写文件)
  • 2017-05-28详谈C++中虚基类在派生类中的内存布局
  • 2017-05-28C++中虚函数与纯虚函数的用法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • strcpy函数实现简示例命分享
    • C++模板类的用法
    • Find K-th Smallest Pair Distance:查找数组元素中差值第K大的两个元素的差值
    • C++中的几种排序算法
    • C++类URL编码和解码使用技巧
    • C语言之双向链表详解及实例代码
    • C语言顺序表实现代码排错
    • 深入理解结构体中占位符的用法
    • vc获取计算机名和ip地址的方法
    • C++获取当前系统时间的方法总结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有