OpenCV中的函数子

随着OpenCV的发展,封装了越来越多的功能,而往往这些功能不是一个函数就能完成的,实现为一组函数又会导致整个库的函数变得杂乱无章,因此常常使用一个新的对象类型来实现这个新功能。通过重载operator()来生成对象或函数子。下面主要讲述了三个新类型cv::PCA、cv::SVD和cv::RNG。

cv::PCA

主成分分析是一种降维的方法,主要是通过分析多维分布从中提取出带有最多信息量的维度子集的方法,这样,在不损失太多精度的前提下,可以扔掉较少信息的维度。

cv::PCA::PCA()

cv::PCA::PCA()

作用:默认的构造函数,简单的创建PCA对象并初始化空结构

cv::PCA::PCA(InputArray data, InputArray mean, int flags, int maxComponents=0)

作用:执行默认构造,然后立即将它的参数传递给cv::PCA::operator()

cv::PCA::operator()

cv::PCA& cv::PCA::operator()(InputArray data, InputArray mean, int flags, int maxComponents=0)

作用:生成PCA对象内部分布的模型。

参数:

参数含义
data一个包含所有构成样本分布的矩阵,n采样,D维
mean包含每一维的平均值的矩阵
flags指定data和mean的排布方式:cv::PCA_DATA_AS_ROW:data是n×D,mean是n×1
cv::PCA_DATA_AS_COL:data是D×n,mean是1×n
maxComponents最大保留的成分(维度)数,默认情况下都保留

cv::PCA::project()

cv::Mat cv::PCA::project(InputArray vec) const

void cv::PCA::project(InputArray vec, OutputArray result) const

作用:将向量投影到主分量子空间。

cv::PCA::backProject()

cv::Mat cv::PCA::backProject(InputArray vec) const

void cv::PCA::backProject(InputArray vec, OutputArray result) const

作用:根据PC投影重建向量。

cv::SVD

奇异值分解(SVD)本质上是解决非方阵、病态的(不适定的)或不良矩阵的工具。在数学上,奇异值分解对于一个m×n的矩阵A的分解形式为:

A=UW V^T

其中,U是m×m的矩阵,W是m×n的对角矩阵(行和列下标不相等时设为0),V是n×n的矩阵。

cv::SVD::SVD()

cv::SVD::SVD()

作用:默认的构造函数,简单的创建SVD对象并初始化空结构

cv::SVD::SVD(InputArray A, int flags=0)

作用:执行默认构造,然后立即将它的参数传递给cv::SVD::operator()

cv::SVD::operator()

cv::SVD& cv::SVD::operator(InputArray A, int flags=0)

作用:将需要分解的矩阵传递给cv::SVD对象,矩阵A将被分为U、W和V的转置(之后记作Vt)。

flags的可取值
含义
cv::SVD::MODIFY_A允许在计算时改变矩阵A的值
cv::SVD::NO_UV不用显式的计算出矩阵U和Vt
cv::SVD::FULL_UV不仅要计算出U和Vt,而且要让它们是全尺寸的正交方阵

cv::SVD::compute()

void cv::SVD::compute(InputArray A, OutputArray W, OutputArray U, OutputArray Vt, int flags)

作用:矩阵A将被分为U、W和Vt,并将结果存放在用户提供的矩阵里。

cv::SVD::solveZ()

void cv::SVD::solveZ(InputArray A, OutputArray z)b

作用:给定一个欠定的(奇异)线性系统,该函数将会尝试找出一个单位长度的解,然后放在矩阵z中。若没有找到,则返回值将是使得值最小的向量。

原理:\vec{z}=argmin_{\vec{x}:\left \| \vec{x} \right \|=1}\left \| A\cdot \vec{x} \right \|

cv::SVD::backSubst()

void cv::SVD::backSubst(InputArray b, OutputArray x)

void cv::SVD::backSubst(InputArray W, InputArray U, InputArray Vt, InputArray b, OutputArray x)

作用:执行奇异值反向替换。

原理:形式一:(UWV^T)\cdot \vec{x}=\vec{b}

           形式二:\vec{x}=V_t^T\cdot diag(W)^{-1}\cdot U^T\cdot \vec{b}\sim A^{-1}\cdot \vec{b}

cv::RNG

随机对象RNG用来产生随机数的伪随机序列。一旦随机数发生器创建,就会开始按需提供产生随机数的“服务”,无论是平均分布(Multiply with Carry,MWC算法)还是正态分布(Ziggurate算法)。

cv::theRNG()

cv::RNG& cv::theRNG(void)

作用:为调用它的线程返回一个默认的随机数生成器。

cv::RNG()

cv::RNG::RNG(void)

cv::RNG::RNG(uint64 state)

作用:使用默认的构造函数来创建一个RNG对象,或者传递一个64位的无符号整型数,这个数将用来作为随机数序列的种子。

cv::RNG::operator T(),其中T是数据类型

cv::RNG::operator uchar()

cv::RNG::operator schar()

cv::RNG::operator ushort()

cv::RNG::operator short int()

cv::RNG::operator int()

cv::RNG::operator unsigned()

cv::RNG::operator float()

cv::RNG::operator double()

作用:重载类型转换操作符,可以把RNG对象转换成任何想要的类型。

注:当产生浮点数的时候,它们的范围始终是[0.0, 1.0)。

cv::RNG::operator()

unsigned int cv::RNG::operator()()

作用:返回一个从[0, UINT_MAX)均匀采样的随机整数。

unsigned int cv::RNG::operator()(unsigned int N)

作用:返回一个从[0, N)均匀采样的随机整数。

cv::RNG::uniform()

int cv::RNG::uniform(int a, int b)

float cv::RNG::uniform(float a, float b)

double cv::RNG::uniform(double a, double b)

作用:在[a, b)的范围内产生平均分布(使用MWC算法)的随机数

cv::RNG::gaussian()

double cv::RNG::gaussian(double sigma)

作用:返回从高斯分布中取样的下一个随机数。

cv::RNG::fill()

void cv::RNG::fill(InputOutputArray mat, int distType, InputArray a, InputArray b, bool saturateRange=false)

作用:使用特定分布随机数填充一个至多4个通道的输入矩阵。

参数列表
参数含义
mat输入矩阵
distType指定分布类型。cv::RNG::UNIFORM或cv::RNG::NORMAL
a均分布是指下限(含),正态分布指均值
b均分布是指上限(不含),正态分布指标准差
saturateRange是否先饱和处理,true:range[saturate(a), saturate(b)),false:saturate(range[a, b))

 

 

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

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

相关文章

查找会议论文的会议地址

有时候会议论文conference proceedings引用格式中要求出现会议地址,如下所示 查找会议地址的方法为直接搜索该会议论文,以ieee为例,会议地址信息在该论文的首页信息中: Conference Location: Arlington, VA, USA中的三项就分别对应…

OpenCV可移植图形工具HighGUI实现图像和视频操作

OpenCV把用于操作系统、文件系统以及摄像机等硬件设备交换的函数纳入了HighGUI(High-level Graphical User Interface)模块中。有了HighGUI模块,我们可以方便地打开窗口、显示图像、读出或写入图像相关的文件、鼠标事件和键盘事件。下面将对三…

华为内部深度解读,关于5G发展的28个核心问题

来源 | 腾讯深网关于5G技术动态与商用进展业界最关心的核心问题,华为5G产品线相关负责人近日对《深网》等进行了详细解读,以下是《深网》整理的问答实录:一、5G先进性与行业应用1. 5G到底是什么?和4G比有什么不一样?从…

OpenCV鼠标事件和滑动条事件

鼠标事件 ① 鼠标事件是通过传统的回调函数机制来完成。 void your_mouse_callback(int event, int x, int y, int flags, void* param) 其中,第一个参数要指明事件,第二个和第三个参数是鼠标事件的位置,第四个参数是标志位,第…

GSMA:中国有望成为全球领先的5G市场之一

来源:GSMA移动智库近日,GSMA(全球移动通信协会)发布首个《中国移动经济发展报告2019》。报告称,中国的移动生态系统在2018年为中国经济创造了5.2万亿元 (7,500亿美元) 的附加值,相当于2018年中国GDP的5.5%。…

canal —— 阿里巴巴mysql数据库binlog的增量订阅消费组件

阿里巴巴mysql数据库binlog的增量订阅&消费组件canal ,转载自 https://github.com/alibaba/canal 最新更新 canal QQ讨论群已经建立,群号:161559791 ,欢迎加入进行技术讨论。canal消费端项目开源: Otter(分布式数据库同步系统…

OpenCV的滤波与卷积

目录 预备知识 滤波、核和卷积 边界外推和边界处理 阈值化操作 Otsu算法 自适应阈值 平滑 简单模糊和方框型滤波器 中值滤波器 高斯滤波器 双边滤波器 导数和梯度 索贝尔导数 Scharr滤波器 拉普拉斯变换 图像形态学 膨胀和腐蚀 通用形态学函数 开操作和闭操…

中国科协发布20个重大科学问题和工程技术难题

来源:晓艳的科技坊6月30日,中国科协在第二十一届中国科协年会闭幕式上发布了2019年20个对科学发展具有导向作用、对技术和产业创新具有关键作用的前沿科学问题和工程技术难题。   中国科学院院士、中国科协名誉主席韩启德表示,中国科协重大…

OpenCV常见的图像变换

拉伸、收缩、扭曲和旋转 最简单的图像变换是调整图像大小,使其变大或变小。但实际操作时要比想象的复杂一些,因为调整大小带来了像素如何插值(放大)或合并(减少)的问题。 均匀调整 cv::resize() void c…

边缘计算对于工业物联网的重要性

来源:物联网世界随着物联网的发展,工业制造设备所产生的数据量将越来越多。如果这些数据都要放到云端处理,就需要无穷无尽的频谱资源、传输带宽和数据处理能力,“云”难免不堪重负,此时就需要边缘计算来分担云计算的压…

全新算法助机器学习抵抗干扰

来源:科技日报 机器学习模型受到攻击将产生严重的后果,但如果对这一情形提前预防呢?就像人类针对即将到来的病毒去接种疫苗一样。据澳大利亚联邦科学与工业研究组织(CSIRO)官方网站消息,该机构的一个研究团…

磁共振成像技术发展简史丨科学史

来源:中国科学院苏州生物医学工程技术研究所编者按:核磁共振是一种常见的影像检查方式。全球首次为病人做核磁共振检查是在1977年7月3日。该技术是基于物理学家拉比有关测量原子核在磁场中性质的研究发展而来的。拉比在1988年去世前不久,也使…

最先进的AI还不如动物聪明?首届AI-动物奥运会英国开赛!

来源:animalaiolympics,新智元【导读】目前,即使是最先进的AI智能体,在适应环境变化的能力方面,还无法与动物相提并论。听上去很不可思议对不对,不服来比比看?日前,动物-AI奥运会正式拉开帷幕&a…

background-size 兼容ie8以下浏览器的方法

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(srcimgs/section-1.png, sizingMethodscale); -ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(srcimgs/section-1.png, sizingMethodscale)";转载于:https://www.cnblogs.com/wend…

一文尽览5G全产业链及新机遇

来源:5G产业圈5G牌照的发放,对通信产业发展具有重要的战略意义。这不仅仅是为了5G商用,更赋予了多重目的。比如为了利用5G技术推动经济结构创新、促进经济增长、帮助华为中兴、结交爱立信诺基亚,分化高通英特尔……甚至可能是为了…

Windows10+Ubuntu 18.04.2+ROS 安装笔记(SSD单硬盘)上

Windows10Ubuntu 18.04.2ROS 安装笔记(SSD单硬盘)上一、前言二、化繁为简三、补充说明小结一、前言 最近需要学习ROS和python,于是便需要装Linux系统,于是选则了主流的 Ubuntu 18.04系统,同时与ROS 也是兼容性最好的系统。 之前…

实验室蒋田仔研究员:脑网络组图谱近10年研究详解【附PPT】

来源:模式识别国家重点实验室【导读】脑是人体最为复杂的器官,脑图谱是理解脑的结构和功能的基石。它为探索复杂的脑部结构和异常变化进行"导航"。因此,脑图谱绘制一直以来都是神经科学、认知科学、心理学和脑疾病研究的共同前沿领…

5G最完整的PPT

来源:云数据中心5G未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网&a…

Windows10+Ubuntu 18.04.2+ROS 安装笔记(SSD单硬盘)下

Windows10Ubuntu 18.04.2ROS 安装笔记(SSD单硬盘)下一、前言二、化繁为简二、补充说明三、测试ROS 是否安装成功一、前言 最近需要学习ROS和python,于是便需要装Linux系统,于是选则了主流的 Ubuntu 18.04系统,同时与ROS 也是兼容…

了解宇宙万物的“第三种方法”​,人工智能正在改变科学

来源:quantamagazine编辑:张卓骏、luciana、笪洁琼、Aileen当今物理和天文实验所产生的海量信息,没有任何一个人或者团队可以完整的处理。有些实验数据每天以千兆字节的规模在增加——而且这个趋势只会越来越明显。想象一下,一台以…