精华内容
下载资源
问答
  • 关于成员函数特征的描述中
    千次阅读
    2018-08-07 11:20:51

    对于使用OpenCV提取图像特征点的方法,全部分为五部分,第一步:创建特征检测算子,如ORB,SURF,SIFT等;第二步:创建vector keyPoints1, keyPoints2来存储detect到的特征点;第三步:创建Mat descriptors1, descriptors2来存储compute到的描述子;第四步:创建vector matches来存储match到的匹配点对;第五步:限制描述子之间的距离,选择距离较小的匹配点对。

    说明:
    1.关于vector keyPoints1, keyPoints2,可以理解其为两个具有500行(默认检测500个特征点)的结构体,结构体中包含有的成员有pt、size、angle、response、octave和class_id。使用下列方法进行访问:keyPoints1[0–499].pt,表示特征点的坐标,还有keyPoints1[0–499].pt.x和keyPoints1[0–499].pt.y来分别表示横纵坐标;keyPoints1[0–499].size用来返回特征点的大小;keyPoints1[0–499].angle返回特征点的角度;keyPoints1[0–499].response返回各特征点的响应值;keyPoints1[0–499].octave返回该点位于哪一层金字塔;最后的keyPoints1[0–499].class_id返回特征点的标签。
    2.关于Mat descriptors1, descriptors2,这两个矩阵用来存储两个500行32列(ORB特征)的描述子,即每行代表一个特征点的描述子。
    3.关于vector match,理解与keyPoints1一样。其中:match.size()返回match的行数;match[0–499].queryIdx返回当前“匹配点”在查询图像的特征在KeyPoints1向量中的索引号,可以据此找到匹配点在查询图像中的位置;match[0–499].trainIdx返回当前“匹配点”在训练(模板)图像的特征在KeyPoints2向量中的索引号,可以据此找到匹配点在训练图像中的位置;match[0–499].imgIdx返回当前匹配点对应训练图像(如果有若干个)的索引,如果只有一个训练图像跟查询图像配对,即两两配对,则imgIdx=0;match[0-499].distance返回特征点之间的欧氏距离,越小表明匹配度越高。

    更多相关内容
  • 类的成员函数

    千次阅读 2021-03-21 21:36:07
    类的成员函数1. 拷贝构造函数1.1 定义1.2 特征 1. 拷贝构造函数 1.1 定义 构造函数:特殊的成员函数 ,只有单个形参,该形参是对本 类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由...

    1. 拷贝构造函数

    1.1 定义

    构造函数:特殊的成员函数 ,只有单个形参,该形参是对本 类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。

    1.2 特征

    1. 拷贝构造函数是构造函数的一个重载形式。
    2. 拷贝构造函数的参数只有一个且必须使用引用传参,使用传值方式会引发无穷递归调用

    1.3 implementation

    1.3.1下面展示一些 内联代码片

    Date(const Date& d)//Date类名;用const修饰;
     {
       _year = d._year;
       _month = d._month;
       _day = d._day;
     }

    实现思路:
    通过对象的拷贝的不断递归调用,最终达到目的;
    在这里插入图片描述

    1.3.2 若未显示定义,系统生成默认的拷贝构造函数。 默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝我们叫做浅拷贝,或者值拷贝。

    2. 赋值运算符重载

    2.1 定义

    运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数类似。

    2.2 特征

    函数名字为:关键字operator后面接需要重载的运算符符号
    函数原型:返回值类型 operator操作符(参数列表)

    • 不能通过连接其他符号来创建新的操作符:比如operator@
    • 重载操作符必须有一个类类型或者枚举类型的操作数
    • 用于内置类型的操作符,其含义不能改变,例如:内置的整型+,不 能改变其含义
    • 作为类成员的重载函数时,其形参看起来比操作数数目少1成员函数的
      操作符有一个默认的形参this,限定为第一个形参
    • .* [成员访问(对象 . 成员)] 、::[作用域] 、sizeof[字符串长度] 、?:[三目运算符] 、 . [调用] 注意这5个运算符不能重载

    2.3 implementation

    下面展示一些 内联代码片
    写法类似于:

    Date& operator=(const Date& d)
     {  //类名+operator+运算符符号()
     if(this != &d)
     {
       _year = d._year;
       _month = d._month;
       _day = d._day;
     }

    调用运算符重载函数的完整形式:

    if (d1.operator==(d2))

    如果运算符重载函数不是成员函数

    if (operator==(d1,d2))

    简写:

    if(d1==d2)//可读性高

    注:this–>始终指向运算符第一个(从左往右)参数的对象;

    好了,欢迎大家前来评论,共同进步!在这里插入图片描述

    展开全文
  • 1.成员函数被重载的特征: (1)相同的范围(在同一个类); (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。 2.覆盖是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于...

    转载:类成员函数的重载、覆盖和隐藏区别 (C++) - liubo1 - 博客园

    1.成员函数被重载的特征:

    (1)相同的范围(在同一个类中);

    (2)函数名字相同;

    (3)参数不同;

    (4)virtual 关键字可有可无。

    2.覆盖是指派生类函数覆盖基类函数,特征是:

    (1)不同的范围(分别位于派生类与基类);

    (2)函数名字相同;

    (3)参数相同;

    (4)基类函数必须有virtual 关键字。

    3.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:

    (1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。

    (2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。

     有关重载,应该是很好理解的(在同一个类中,函数名相同,函数的参数类型和个数不同),此处不予更多的说明,对于覆盖和隐藏(主要在基类和派生类中体现),借助下面这个例子来直观的说明:

    隐藏:

    class People {
    public:
    // 隐藏:是指派生类的函数屏蔽基类函数
    // 隐藏规则1:
    // 1) 函数名相同 && 参数不同
    // 2) virtual不影响
    void getId_different_params() {cout << "People::getId_different_params" << endl;}
    virtual void getName_different_params() {cout << "People::getName_different_params" << endl;}
    
    // 隐藏规则2:
    // 1) 函数名相同 && 参数相同
    // 2) 无virtual
    void getPhone_same_params() {cout << "People::getPhone_same_params" << endl;}
    }
    

    覆盖

    // 覆盖规则:
    // 1) 函数名相同 && 参数相同
    // 2) 有virtual
    virtual void getAddress_same_params() {cout << "People::getAddress_same_params" << endl;}
    };


    程序:

    void main()
    {
    
    Children *c = new Children();
    c->getId_different_params(1);
    c->getName_different_params(1);
    c->getPhone_same_params();
    c->getAddress_same_params();
    /*输出为:
    Children::getId_different_params(int)
    Children::getName_different_params(int)
    Children::getPhone_same_params
    Children::getAddress_same_params
    */
    
    
    People *p = new Children();
    p->getId_different_params();
    p->getName_different_params();
    p->getPhone_same_params();
    p->getAddress_same_params();
    
    /*输出为:
    People::getId_different_params         //由于子类中的函数只是隐藏了基类中的函数而没有覆盖,因为指针为基类指针,故调用基类函数
    People::getName_different_params    //由于子类中的函数只是隐藏了基类中的函数而没有覆盖,因为指针为基类指针,故调用基类函数
    People::getPhone_same_params       //由于子类中的函数只是隐藏了基类中的函数而没有覆盖,因为指针为基类指针,故调用基类函数
    Children::getAddress_same_params // 由于子类中的函数覆盖了基类中的函数,虽然指针为基类指针,但是会调用子类函数
    */
    }

     

    展开全文
  • 成员函数与内联函数

    2019-09-21 19:10:41
    11.关于成员函数特征的下列描述中,______是错误的. 成员函数一定是内联函数 B. 成员函数可以重载 C. 成员函数可以设置缺省参数值 D. 成员函数可以是静态的 [A] [解析] 因为成员函数可以在类体内定义,也...

    11.关于成员函数特征的下列描述中,______是错误的.  

    1. 成员函数一定是内联函数   B. 成员函数可以重载    

    C. 成员函数可以设置缺省参数值   D. 成员函数可以是静态的   [A]

    [解析] 因为成员函数可以在类体内定义,也可以在类体外定义,所以成员函数不一定都是内联函数;成员函数可以重载,可以设置参数的默认值,成员函数可以是静态的。

     

    内联函数是指在调用衣柜函数时,不把他当作调用而处理,而是把这个函数的代码直接在调用他的函数里展开的形式,也可以理解为内联函数就相当于一段代码。不需要调用,效率就高些。成员函数是类中声明的函数,属于类。当然如果在类中定义的成员函数自动变为内联函数。

     

    成员函数是属于对象的, 静态函数才是属于类的. 如果在类体内定义的函数,则会被编译器默认为内联函数, 如果把函数的定义放在外面,且在函数的声明的时候加上关键字inline,则函数变为内联函数,否则为成员函数.

     

    内联函数类似于C里边的宏,只是宏经常有一些不安全因素,比如 宏定义 add() 是 a+b,调用的时候宏定义直接展开,不做任何的判断,如果调用res = add()*c; 得到的代码就是res = a+b*c;不是想要的结果。 
       内联函数可以理解成一个安全的宏定义,他就是一个真正的函数,只是不用压栈出栈,速度快,而且比宏定义安全,所以利用 短且频率 比较高的函数可以写成内联函数inline。 
       内联函数在编译时,会将此内联函数代码直接编译到调用函数之处。减少了一次函数调用时的跳转、数据压栈等操作。所以相比调用行数,内联函数的执行效率要相对高点。不过也正因为如此,所以最终生成的程序文件要稍微大点。
     
    1.内联函数可减少cpu的系统开销,并且提高整体程序的速度,但当内联函数很大时,会有相反的作用,因此一般比较小的函数才使用内联函数。
    2.有两种内联函数的声明方法,一种是在函数前使用inline关键字;另一种是在类的内部定义函数的代码,这样的函数将自动转换为内联函数,而且没必要将inline放在函数前面。
    3.内联是一种对编译器的请求,像register说明符一样。下面这些情况会阻止编译器服从这项请求.如果函数中包含有循环,switch或goto语句,递归函数,含有static的函数.

    转载于:https://www.cnblogs.com/yan-hui/p/11407252.html

    展开全文
  • 成员函数的定义有两个特殊的特征 类方法的完整 名称包括类名 类方法可以直接 访问私有成员!!! 2 代码示例 stock00.h stock00.cpp 3. 代码解析 3.1 成员函数说明 3.2 内联方法 3.3 方法使用哪个对象? ...
  • 1、成员函数的重载 1.1、C++成员函数有4种,分别是普通成员函数,virtual虚函数,const成员函数。 void func(int a) virtual void func(int a); void func(int a) const; 如果在...
  • 这三个概念都是与OO的多态有关系的。如果单是区别重载与覆盖这两个概念是比较容易的,但是隐藏这一概念却使问题变得有点复杂了,下面说说它们的区别吧。  重载是指不同的函数使用相同的函数名,但是函数的参数个...
  • NumPy之:ndarray函数

    千次阅读 2021-05-24 09:58:02
    在NumPy,多维数组除了基本的算数运算之外,还内置了一些非常有用的函数,可以加快我们的科学计算的速度。
  • A:赋值与二元操作符可以组合,例如=,B答案查看答案关于赋值语句,以下选项中描述错误的是:( )解析【判断题】numpy 产生全1 的矩阵使用的方法是empty.【单选题】关于面向对象的程序设计,以下选项中描述错误的是: ...
  • C++基础题

    千次阅读 2019-12-25 22:40:10
    1.关于类定义格式的描述中,( )是错的。 A. 一般类的定义格式分为说明部分和实现部分 B. 一般类中包含有数据成员和成员函数 C. 类中成员有三种访问数据:公有、私有和保护 D. 成员函数都应是公有的、数据成员都应是...
  • 个人微信公众号:tanzi_888 (潭子技术圈)  ...C++中成员函数的重载、覆盖和隐藏的区别: 1 重载(overload): 是函数名相同,参数列表不同 重载只是在类的内部存在。但是不能靠返回值类型来判断。 1.
  • 【翻译自 : Feature Importance and Feature Selection With ... 使用诸如梯度增强之类的决策树方法的集成的好处是,它们可以从训练有素的预测模型自动提供特征重要性的估计。 在本文,您将发现如何使用P...
  • PCL 点云特征描述与提取

    万次阅读 2018-07-10 15:28:23
    说明以下均为 Being_young 前辈所写,现转载过来,再加上自己的理解,重新写了一遍,方便自己日后使用博客...· 目录索引PCL 点云特征描述与提取PCL 描述三维特征相关基础PCL 法线估计实例 —— 估计某一点的表面...
  • 在基于对象的程序设计方法,我们通过一组数据抽象来建立问题的模型,在C++我们把这些抽象称为类。比如图书馆资料登记/借阅系统就是由类的抽象实例(比如书名、借阅者、还书时间等)之间的相互作用表现出来,以此...
  • C++构造函数的超详细讲解

    千次阅读 2022-07-19 17:21:37
    详细讲解C++种的构造函数
  • STL sort()函数用法详解—— 排序

    千次阅读 2017-08-21 10:39:10
    STL容器的排序,支持随机访问的容器vector,deque,string没有sort成员,可调用std::sort排序;list排序调用自带的list::sort。 下面是std::sort函数,有两个版本: [cpp] view plain copy ...
  • 常用概率分布函数及随机特征

    万次阅读 多人点赞 2018-02-08 20:28:52
    常见分布的随机特征离散随机变量分布伯努利分布(二点分布)伯努利分布亦称“零一分布”、“两点分布”。称随机变量X有伯努利分布, 参数为p(0&lt;p&lt;1),如果它分别以概率p和1-p取1和0为值。EX= p,DX=p(1-p...
  • 函数的代码和复用

    千次阅读 2021-09-09 14:47:22
    文章目录一、函数的理解和定义二、代码的复用与函数递归习题巩固 一、函数的理解和定义 1.熟悉函数的使用及调用过程 2.熟悉函数的参数传递 3.熟悉局部变量和全局变量 4.了解lambda匿名函数 函数的理解和定义 ​ ·...
  • opencv之SURF特征点提取及匹配

    万次阅读 多人点赞 2017-04-18 18:54:16
    通过Surf算法检测到的特征点其描述符包含了这个点的位置和尺度信息,故对两幅图片进行匹配时可以通过两幅图中特征点匹配对进行匹配。即使物体位置和光照的改变也能够有良好的匹配效果。 在本片文章中将使用...
  • python函数命名规则

    千次阅读 2021-04-27 01:25:48
    Python 编码规范遵循良好的编码风格,可以有效的... 关于 Python 对文件的处理,以下选项中描述错 误的是 A Python 通过解释器内置的 open() 函数打开一个文 件 B 当文件以文本方式打开时,读写按照字节流方式 C ......
  • C++ 类的构造函数和析构函数

    千次阅读 2020-06-14 10:06:34
    A 一般成员函数的初始化 B 类的初始化 C 对象的初始化 D 删除类创建的对象 2-3下列函数,( C )不能重载。 A 成员函数 B 非成员函数 C 析构函数 D 构造函数 2-4下列关于类和对象的叙述,错误的是 A A 一个类...
  • 概述: mexPackage 库提供了一个框架,可以轻松无缝地将 C++ 类型和函数直接暴露到 Matlab ,从而使它们的行为类似于原生 Matlab 类和函数。 C++ 类型可以自动映射到 Matlab 内置类型或自定义 Matlab 类。 基本...
  • SIFT算法的特征点筛选和DMatch、Keypoint描述

    万次阅读 多人点赞 2018-01-08 00:29:25
    SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图特征点(interest points,or corner points)及其有关scale 和 orientation 的描述子得到特征并进行图像特征点匹配 ...
  • python-0-测试题

    千次阅读 2020-11-24 13:17:14
    一、选择题1、关于python内存管理,下列说法错误的是:(D)A - 变量不必事先声明B - 可以使用del释放资源C - 变量无须指定类型D - 变量无须先创建和赋值而直接使用python当中的垃圾回收算法是采用引用计数,当一个...
  • 使用诸如梯度增强之类的决策树方法的集成的好处是,它们可以从训练有素的预测模型自动提供特征重要性的估计。在本文,您将发现如何使用Python的XGBoost库来估计特征对于预测性建模问...
  • 什么叫特征检测?就是检测图像目标的特征呗,所谓特征,不管你怎么...对特征的描述有很多种方法和算子,常见的有SIFT特征描述算子、SURF特征描述算子、ORB特征描述算子、HOG特征描述、LBP特征描述以及Harr特征描述...
  • 文章目录BFMatcher演示SURF--BFMatch BFMatcher Brute Force匹配是opencv二维特征点匹配常见的办法,BFMatcher总是尝试所有可能的匹配,从而使得它总能够找到最佳...InputArray queryDescriptors, 特征描述子1(待查询)
  • 本博文为半摘记性质,收集整理自菜鸟教程、微软C#文档及其他互联网资料 —— 类的成员:主讲字段、方法和属性 字段又称为“成员变量”,...属性属于高级概念,在OOP(面向对象),主要使用属性来描述对象的静态特征
  • · 说明 以下均为 Being_young 前辈所写,现转载过来,再加上自己的理解,重新写了一遍,方便自己日后使用 ...或者参考另一篇博文:[PCL系列——从深度图像...PCL 点云特征描述与提取 PCL 描述三维特征相关基础 PCL
  • ORB-SLAM2代码详解02: 特征点提取器ORBextractor

    千次阅读 多人点赞 2021-05-14 11:26:36
    特征点提取器ORBextractor各成员函数/变量构造函数`ORBextractor()`构建图像金字塔`ComputePyramid()`提取特征点并进行筛选`ComputeKeyPointsOctTree()`八叉树筛选特征点`DistributeOctTree()`计算特征点方向`...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,377
精华内容 27,750
热门标签
关键字:

关于成员函数特征的描述中