keypoint数据结构
公有属性
(float)angle:角度,表示关键点的方向,-1为初值。
(int)class_id:当要对图片进行分类时,我们可以用class_id对每个特征点进行区分,未设定时为-1,需要靠自己设定
(int)octave:代表是从金字塔哪一层提取的得到的数据。
(Point2f)pt:关键点的点坐标
(float)response:响应程度,代表该点强壮大小—response代表着该关键点how good,更确切的说,是该点角点的程度。
(float)size:该点直径的大小
公有成员函数
三个构造函数
KeyPoint () : 默认构造函数
KeyPoint (Point2f _pt, float _size, float _angle=-1, float _response=0, int _octave=0, int _class_id=-1)
参数
_pt : 关键点的x和y坐标
_size : 关键点直径
_angle : 关键点方向
_response:关键点上的关键点检测器响应(即关键点的强度)
_octave : 已检测到关键点的pyramid octave
_class_id: 关键点ID
KeyPoint (float x, float y, float _size, float _angle=-1, float _response=0, int _octave=0, int _class_id=-1)
参数
x : 关键点的x坐标
y : 关键点的y坐标
_size : 关键点直径
_angle : 关键点方向
_response:关键点上的关键点检测器响应(即关键点的强度)
_octave : 已检测到关键点的pyramid octave
_class_id: 关键点ID
size_t hash () const
静态公有成员函数
static void convert (const std::vector< KeyPoint > &keypoints, std::vector< Point2f > &points2f, const std::vector< int > &keypointIndexes=std::vector< int >())
此方法将关键点的矢量转换为点矢量或反向,其中每个关键点被指定相同的大小和相同的方向。
参数
keypoints : 从任何特征检测算法(如SIFT / SURF / ORB)获得的关键点
points2f : 每个关键点的(x,y)坐标数组
keypointIndexes : 要转换为点的关键点的索引数组。(像掩码一样只转换指定的关键点)
static void convert (const std::vector< Point2f > &points2f, std::vector< KeyPoint > &keypoints, float size=1, float response=1, int octave=0, int class_id=-1)
这是一个重载的成员函数,为方便起见而提供。它与上述函数的不同之处仅在于它接受的参数。
参数
points2f : 每个关键点的(x,y)坐标数组
keypoints : 从任何特征检测算法(如SIFT / SURF / ORB)获得的关键点
size : 关键点直径
response : 关键点上的关键点检测器响应(即关键点的强度)
octave : 已检测到关键点的pyramid octave
class_id : 关键点 id
static float overlap (const KeyPoint &kp1, const KeyPoint &kp2)
此方法计算关键点对的重叠。重叠是关键点区域交叉区域与关键点区域联合区域之间的比率(将关键点区域视为圆圈)。如果它们不重叠,我们就会得到零。如果它们在相同大小的相同位置重合,我们得到1。
参数
kp1 : First keypoint
kp2 : Second keypoint
keypoint数据结构的更多相关文章
- opencv中keypoint数据结构分析
分析opencv中keypoint数据结构的相关信息,找到opencv的document(http://docs.opencv.org/java/org/opencv/features2d/KeyPo ...
- OpenCV计算机视觉学习(13)——图像特征点检测(Harris角点检测,sift算法)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 前言 ...
- [opencv]keypoint数据结构分析
KeyPoint这数据结构中有如下数据成员: angle:角度,表示特征点的方向,通过Lowe大神的论文可以知道,为了保证方向不变形,SIFT算法通过对特征点周围邻域进行梯度运算,求得该点方向.-1为 ...
- 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- 深入浅出Redis-redis底层数据结构(上)
1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...
- 算法与数据结构(十五) 归并排序(Swift 3.0版)
上篇博客我们主要聊了堆排序的相关内容,本篇博客,我们就来聊一下归并排序的相关内容.归并排序主要用了分治法的思想,在归并排序中,将我们需要排序的数组进行拆分,将其拆分的足够小.当拆分的数组中只有一个元素 ...
- 算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)
本篇博客中的代码实现依然采用Swift3.0来实现.在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找.折半查找.插值查找.Fibonacci查找,还包括数结构的二叉排序树以 ...
- 算法与数据结构(九) 查找表的顺序查找、折半查找、插值查找以及Fibonacci查找
今天这篇博客就聊聊几种常见的查找算法,当然本篇博客只是涉及了部分查找算法,接下来的几篇博客中都将会介绍关于查找的相关内容.本篇博客主要介绍查找表的顺序查找.折半查找.插值查找以及Fibonacci查找 ...
- 算法与数据结构(八) AOV网的关键路径
上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的, ...
随机推荐
- 微信公众号调试经常报access_token is invalid or not latest rid
是因为我没有使用中控服务器,所以服务器上使用同一个appid和secret获取了access_token 调试的时候再重新获取了一个新的access_token,所以导致微信服务器发放了新的acces ...
- (C++) C++ template笔记 -- template关键字及typename关键字
在调用C++ template函数时,有时候语法会存在歧义. 调用函数时,使用 obj.template func<...>() 形式的语法,避免歧义: 调用类型时,使用嵌入子类型时,使用 ...
- 一张VR图像帧的生命周期
"VR 应用程序每帧渲染两张图像,一张用于左眼,一张用于右眼."人们通常这样来解释 VR 渲染,虽然没有错,但可能过于简单化了.对于 Quest 开发人员来说,了解全貌是有益的,这 ...
- 一图看懂Hadoop中的MapReduce与Spark的区别:从单机数据系统到分布式数据系统经历了哪些?
今日博主思考了一个问题:Hadoop中的MapReduce与Spark他们之间到底有什么关系? 直到我看到了下面这张图 废话不多说先上图 我们知道,单机数据系统,在本地主机上针对数据有单机本地存储操作 ...
- 【Java】从头开始学新的编程语言
本文自用,Java入门笔记 -每个类都要在自己的单独文件中-我大为震撼 能运行的最小的Java程序要有main函数 public static void main(String[] args) (id ...
- python虚拟环境和venv的使用
目录 1.环境与虚拟环境 2.查看帮助 3.--system-site-package 命令 4.创建虚拟环境 5.激活/关闭虚拟环境 6.保存和复制虚拟环境 7.改变虚拟环境所指向的真实python ...
- java中方法传参形式
成员方法传参形式: 1.基本数据类型:传递的是值 public class Object03 { public static void main(String[] args) { AA aa = ne ...
- Python实验报告(第13章)
实验13:Pygame游戏编程 一.实验目的和要求 学会Pygame的基本应用 二.Pygame的优点及应用 使用Python进行游戏开发的首选模块就是Pygame,专为电子游戏设计(包括图像.声音) ...
- kali之pip和pip3安装
安装pip 首先安装setuptools,setuptools是 Python Enterprise Application Kit(PEAK)的一个副项目,它 是一组Python的 distutil ...
- [python] 基于diagrams库绘制系统架构图
Python的Diagrams库允许通过简单的Python代码绘制云系统架构,实现对新的系统架构进行原型设计.Diagrams的官方仓库地址见:diagrams.Diagrams的官方文档和使用示例见 ...