OpenCV学习笔记__特征检测与匹配之 SURF算法
来源:互联网 发布:基因优化液 编辑:程序博客网 时间:2024/05/17 01:31
SURF 算法 ——“加速版的具有鲁棒性的特征”算法
步骤:
特征检测 —— 特征描述 —— 特征匹配
实现流程:
(1)特征检测:SurfFeatureDetector类 . detect( )函数
(2)特征描述:SurfDescriptorExtractor类 . compute( )函数
(3)特征匹配:BruteForceMatcher类 . match( )函数
(这三步的实现都类似:类实例化一个对象,(定义vector或者Mat存放结果),调用函数,将计算结果存储供给下一步使用)
(4)最后显示“匹配图”:drawMatches( )函数
实现代码:
#include "opencv2/core/core.hpp"#include "opencv2/features2d/features2d.hpp"#include "opencv2/highgui/highgui.hpp"#include <opencv2/nonfree/nonfree.hpp>#include<opencv2/legacy/legacy.hpp>#include <iostream>using namespace cv;using namespace std;int main(){//【1】载入素材图Mat srcImage1 = imread("1.jpg", 1);Mat srcImage2 = imread("2.jpg", 1);if (!srcImage1.data || !srcImage2.data){printf("读取图片错误,请确定目录下是否有imread函数指定的图片存在~! \n"); return false;}//【2】使用SURF算子检测关键点int minHessian = 700;//SURF算法中的hessian阈值SurfFeatureDetector detector(minHessian);//定义一个SurfFeatureDetector(SURF) 特征检测类对象 std::vector<KeyPoint> keyPoint1, keyPoints2;//vector模板类,存放任意类型的动态数组//【3】调用detect函数检测出SURF特征关键点,保存在vector容器中detector.detect(srcImage1, keyPoint1);detector.detect(srcImage2, keyPoints2);//【4】计算描述符(特征向量)SurfDescriptorExtractor extractor;Mat descriptors1, descriptors2;extractor.compute(srcImage1, keyPoint1, descriptors1);extractor.compute(srcImage2, keyPoints2, descriptors2);//【5】使用BruteForce进行匹配// 实例化一个匹配器BruteForceMatcher< L2<float> > matcher;std::vector< DMatch > matches;//匹配两幅图中的描述子(descriptors)matcher.match(descriptors1, descriptors2, matches);//【6】绘制从两个图像中匹配出的关键点Mat imgMatches;drawMatches(srcImage1, keyPoint1, srcImage2, keyPoints2, matches, imgMatches);//进行绘制//【7】显示效果图imshow("匹配图", imgMatches);waitKey(0);return 0;}
0 0
- OpenCV学习笔记__特征检测与匹配之 SURF算法
- 【OpenCV学习笔记】三十八、特征检测与匹配(三)——SURF特征点检测与匹配
- Surf算法特征点检测与匹配
- Surf算法特征点检测与匹配
- opencv学习之 特征检测与匹配
- Java基于OpenCV的Surf特征检测与匹配
- OpenCV中feature2D学习——FAST特征点检测与SIFT/SURF/BRIEF特征提取与匹配
- 【OpenCV】SURF算法之视频图像实时特征点匹配
- opencv开发笔记(十五):特征检测十大方法之SURF算法
- opencv学习之SURF特征检测提取演示
- Surf特征点检测与匹配
- 【OpenCV学习笔记】三十七、特征检测与匹配(二)——SIFT特征点匹配
- OpenCV学习笔记__使用FLANN进行特征点匹配
- opencv之特征检测与匹配
- opencv之特征检测与匹配(三)
- OpenCV Surf特征匹配
- SURF特征匹配算法
- 特征点检测学习_2(surf算法)
- java 泛型编程
- pt-archiver
- iOS开发之UI——键盘弹出屏幕上移
- yii2-pjax更新
- python 使用全局变量 global
- OpenCV学习笔记__特征检测与匹配之 SURF算法
- Binary String Matching 5 (简单KMP模板题)
- MFC给按钮添加图片
- Android fragment 使用Sharepreferences来获取值,更新界面
- java基础---Java垃圾回收机制
- NavigationController背景透明设置方法
- 【OC】thread 1:exc_bad_access(code=1,address=0x7fff7d72a7a0) 的一种解决方法
- C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
- 欢迎使用CSDN-markdown编辑器