3、opencv特征的提取与配准 keypoint and match
来源:互联网 发布:java程序设计培训班 编辑:程序博客网 时间:2024/05/21 22:28
(在做高博的“一起做RGB-D_SLAM”的一些问题,作为自己笔记总结,以督促自己完成并理解)
有点不太想做下去这个,幸好可以写写,哈哈,刷刷成就感
这次做的一起做----特征的提取与配准,前面先有库的封装,不是太明白,这个知识点先放这,后面再补充???
步骤:在qt里直接新建include/slamBase.h不会,就在终端进入项目路径下新建的。
特征提取
特征配准
通过距离筛选优化
计算图像间的运动关系R\t,优化存在误匹配的情况
接着试着用自己无深度的照片(三幅图放一起了)
note:
1. OpenCV提供了两种Matching方式:
• Brute-force matcher (cv::BFMatcher)
• Flann-based matcher (cv::FlannBasedMatcher)
Brute-force matcher就是用暴力方法找到点集一中每个descriptor在点集二中距离最近的descriptor;
vector< cv::DMatch > matches; cv::BFMatcher matcher; //Matching方式:用暴力方法找到点集一中每个descriptor在点集二中距离最近的descriptor matcher.match( desp1, desp2, matches ); //对上述的描述子进行匹配 cout<<"Find total "<<matches.size()<<" matches."<<endl; //
Flann-based matcher 使用快速近似最近邻搜索算法寻找(用快速的第三方库近似最近邻搜索算法)
一般把点集一称为 train set (训练集)对应模板图像,点集二称为 query set(查询集)对应查找模板图的目标图像。
为了提高检测速度,你可以调用matching函数前,先训练一个matcher。训练过程可以首先使用cv::FlannBasedMatcher来优化,为descriptor建立索引树,这种操作将在匹配大量数据时发挥巨大作用(比如在上百幅图像的数据集中查找匹配图像)。而Brute-force matcher在这个过程并不进行操作,它只是将train descriptors保存在内存中。
2. 在matching过程中可以使用cv::DescriptorMatcher的如下功能来进行匹配:
简单查找最优匹配:void match(const Mat& queryDescriptors, vector& matches,const vector& masks=vector() );
为每个descriptor查找K-nearest-matches:void knnMatch(const Mat& queryDescriptors, vector
- 3、opencv特征的提取与配准 keypoint and match
- opencv的KeyPoint
- Opencv运动物体常用的特征提取与匹配方法
- Opencv运动物体常用的特征提取与匹配方法
- 特征提取keypoint结构以及xxDescriptorExtractor提取结果
- OpenCV 3 SURF 特征提取
- 【杂谈opencv】OpenCV中的KeyPoint与DMatch
- Opencv Sift算子特征提取与匹配
- 【openCV】特征点提取与匹
- Opencv Sift算子特征提取与匹配
- Opencv Sift算子特征提取与匹配
- opencv Keypoint
- 目标检测的图像特征提取之(四)OpenCV中BLOB特征提取与几何形状分类
- OpenCV的ORB特征提取算法
- OpenCV中HOG特征的提取实现
- opencv批处理提取图像的特征
- opencv 提取SIFT特征的程序
- 基于opencv的Gabor特征提取
- MYSQL输出不同科目的最高分
- Xcode9无线调试教程
- Linux学习apache
- ijkplayer使用的一些问题
- Casinos and travel[智力和快速幂]
- 3、opencv特征的提取与配准 keypoint and match
- 图片(img)alt属性标签怎么写
- memcache windows 基本安装和测试
- 1.3.3.序列化操作
- Ts项目中使用JavaScript
- 手游引擎Unity和Cocos各有什么优劣?
- java读取.properties配置文件
- 任意三位数重新排列求最大值
- css选择器简单整理