SURF特征提取
来源:互联网 发布:帝国cms目录结构 编辑:程序博客网 时间:2024/06/05 05:32
(文章借鉴《OpenCV3编程入门》)
SURF特征点提取(图像为灰度图)
一,BruteForce进行特征点匹配
【1】使用SURF算子检测关键点
int minHessian = 700;//SURF算法中的hessian阈值SurfFeatureDetector detector(minHessian);//定义一个SurfFeatureDetector(SURF) 特征检测类对象
vector<KeyPoint> keyPoint1, keyPoints2;//vector模板类,存放任意类型的动态数组
【2】调用detect函数检测出SURF特征关键点,保存在vector容器中
detector.detect(srcImage1, keyPoint1);
detector.detect(srcImage2, keyPoints2);
【3】计算描述符(特征向量)
SurfDescriptorExtractor extractor;
Mat descriptors1, descriptors2;
extractor.compute(srcImage1, keyPoint1, descriptors1);
extractor.compute(srcImage2, keyPoints2, descriptors2);
【4】使用BruteForce进行匹配
// 实例化一个匹配器
BruteForceMatcher< L2<float> > matcher;//(Flann描述符匹配对象为FlannBaseMatcher matcher )
vector< DMatch > matches;
//匹配两幅图中的描述子(descriptors)
matcher.match(descriptors1, descriptors2, matches);
【5】绘制从两个图像中匹配出的关键点
Mat imgMatches;
drawMatches(srcImage1, keyPoint1, srcImage2, keyPoints2, matches, imgMatches);//进行绘制
二,使用FLANN进行特征点识别
前提:已获取图像描述符(特征向量)
//创建基于FLANN的描述符匹配对象
FlannBaseMatcher matcher;
vector<Mat>train_desc_collection(1,KeyPoint1);
match.add(train_desc_collection);//添加描述符集
matcher.train();//训练一个描述符匹配算子
//匹配训练和测试描述符
vector< DMatch > matches;
match.knnMatch(keyPoint2,matches,2);
//根据劳氏算法得到优秀的匹配点
matches[i][0].distance<0.6*matches[i][1].distance;
阅读全文
0 0
- SURF特征点提取
- SURF特征点提取
- SURF特征提取分析
- SURF特征提取分析
- SIFT SURF 特征提取
- 特征提取算法--Surf
- SURF特征提取
- SURF特征提取
- SURF特征提取简介
- SURF特征提取分析
- SURF特征提取
- SURF 特征提取和匹配
- OpenCV 3 SURF 特征提取
- opencv3中SURF特征提取
- Surf特征提取与匹配
- 图像特征提取4:Surf特征
- 图像特征提取4:Surf特征
- 【图像特征提取7】SURF特征提取算法的
- xml学习笔记②PHP DOM--对xml文件进行解析操作
- 去默认butoon边框
- webpack+ES6+less开发环境搭建(附带视频教程)
- error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MD_DynamicRelease”不匹配值“MTd_StaticDebug”(ConsoleApplicatio
- MySQL优化--插入的优化
- SURF特征提取
- 初学者---Android NDK开发(一)
- JS——坑11
- vscode中的正则搜索与替换演示
- UUID
- MySQL • 引擎特性 • DROP TABLE之binlog解析
- MySQL优化--数据结构的优化
- MySQL · 数据恢复 · undrop-for-innodb
- 【惊雷】Linux下多网卡冗余的实现