OpenCV 4.4.0 中SIFT专利到期 SIFT方法已经回归主库 使用时 cv::SIFT即可 , SURF还在nofree中 相较于之前版本 头文件不在 #include <opencv2/xfeatures2d.hpp> 而在 #include <opencv2/xfeatures2d/nonfree.hpp>中

opencv3.X以后中SurfFeatureDetector、SurfDescriptorExtractor、BruteForceMatcher这三个的使用方法已经和原先2.4版本前不一样,一般通过指针访问   最好看一下继承关系

老版多用类

SurfFeatureDetector detector(minHessian);//定义一个SurfFeatureDetector(SURF) 特征检测类对象
detector.detect(srcImage1, keypoints_1);SurfDescriptorExtractor extractor; //定义一个特征点描述子
extractor.compute(srcImage1, keypoints_1, descriptors1);//计算描述符BruteForceMatcher<L2<float>>matcher;//创建一个暴力匹配器
matcher.match(descriptors1, descriptors2, BFmatches);

新版多用智能指针

 Ptr<SURF> detector = SURF::create(minHessian);detector->detect(img_1, keypoints_1);Ptr<SURF> extractor = SURF::create();extractor->compute(img_1, keypoints_1, descriptors_1);Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create("BruteForce");//这里填写使用的匹配方式
matcher->match(descriptors_1, descriptors_2, matches);

对于匹配器的调用

static Ptr<DescriptorMatcher> cv::DescriptorMatcher::create(const String & descriptorMatcherType)

descriptorMatcherType Descriptor matcher type. Now the following matcher types are supported:

  • BruteForce (it uses L2 )
  • BruteForce-L1
  • BruteForce-Hamming
  • BruteForce-Hamming(2)
  • FlannBased

SiftDescriptorExtractor,有的是uchar类型的,比如说有ORB,BriefDescriptorExtractor。对应float类型的匹配方式有:FlannBasedMatcher,BruteForce<L2<float>>,BruteForce<SL2<float>>,BruteForce<L1<float>>。对应uchar类型的匹配方式有:BruteForce<Hammin>,BruteForce<HammingLUT>。所以ORB和BRIEF特征描述子只能使用BruteForce匹配法。

新版匹配器也常用派生类直接调用

BFMatcher BFmatch;

FlannBasedMatcher FLANNmatch;

https://blog.csdn.net/holybin/article/details/40926315

https://blog.csdn.net/xxzxxzdlut/article/details/72926011?spm=1001.2014.3001.5506

OpenCV-4.5 SURF API相关推荐

  1. OpenCV中的SURF(Speeded-Up Robust Features 加速鲁棒特征)

    OpenCV中的SURF(加速健壮功能) 1. 效果图 2. 原理 2.1 为什么SURF比SIFT快? 2.3 怎样获取SIFT与SURF? 3. 源码 参考 上一篇博客介绍了用于关键点检测和描述的 ...

  2. OpenCV gapi模块基本API的实例(附完整代码)

    OpenCV gapi模块基本API的实例 OpenCV gapi模块基本API的实例 OpenCV gapi模块基本API的实例 #include <opencv2/videoio.hpp&g ...

  3. OpenCV textDetectionModel和textRecognitionModel API的端到端的实例(附完整代码)

    OpenCV textDetectionModel和textRecognitionModel API的端到端的实例 OpenCV textDetectionModel和textRecognitionM ...

  4. 【OpenCV入门教程之十七】OpenCV重映射 SURF特征点检测合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/30974513 作者:毛星云(浅墨) ...

  5. java opencv surf_opencv python SURF

    理论 在上一章中,我们看到了SIFT的关键点检测和描述,但它相对较慢,人们需要更加快速的版本,所以2006年引入了一种名为SURF的新算法, 顾名思义,它是SIFT的加速版本. 作为尺度不变特征变换( ...

  6. OpenCV系列之SURF简介(加速的强大功能)| 四十

    目标 在这一章当中, 我们将了解SURF的基础 我们将在OpenCV中看到SURF函数 理论 在上一章中,我们看到了SIFT用于关键点检测和描述符.但相对缓慢,人们需要更多的加速版本.2006年,三个 ...

  7. Opencv Sift和Surf特征实现图像无缝拼接生成全景图像

    Sift和Surf算法实现两幅图像拼接的过程是一样的,主要分为4大部分: 1. 特征点提取和描述 2. 特征点配对,找到两幅图像中匹配点的位置 3. 通过配对点,生成变换矩阵,并对图像1应用变换矩阵生 ...

  8. OpenCV中的SURF特征检测、匹配与对象查找

    SURF算法工作原理 选择图像中的POI(Points of interest) Hessian Matrix 在不同的尺度空间发现关键点,非最大信号压制 发现特征点方法.旋转不变性要求 生成特征向量 ...

  9. 解决OpenCV中SIFT,SURF不能使用,修改成ORB检测特征

    我们知道因为一些专利的原因,SIFT和SURF不能再OpenCV后续的版本中继续使用.所以我们可以用OpenCV自带的其他检测器:Oriented FAST and Rotated BRIEF.引用官 ...

最新文章

  1. python能干啥、实际生活-学习Python可以做什么?从事哪些岗位?
  2. OSPF——多区域概念及配置、ABR简介、ASBR简介、路由重分发
  3. 大屏数据可视化设计注意事项
  4. C语言冒泡排序三种写法,冒泡排序的三种实现方法
  5. C向Python正确传递数组的代码
  6. Python面试宝典
  7. 未来教育mysql下载_未来教育计算机二级题库中的视频为什么无法播放
  8. 前沿重器[21] | 聊聊对话系统:概述
  9. PAT A1002 A+B for Polynomials (25 分)
  10. 工厂食堂3D指纹考勤系统解决方案
  11. KingbaseES Clusterware 高可用案例之---构建iSCSI共享存储
  12. [转]WIN MOBILE UI开发入门
  13. 苹果IAP内购验证工具类
  14. Hibernate简单配置
  15. XManager5 ssh远程登录服务器工具xshell ,服务器资源上传下载工具xftp
  16. 一个ADC做多个按键扫描检测
  17. 下载W ndows桌面,远程桌面连接Wndows 7常见故障解决方法.doc
  18. MinGW64的使用
  19. My Seventh Page - 设计链表 - By Nicolas
  20. 用学过的python写一个计算三角形面积和周长

热门文章

  1. 国内第三代半导体产业成为行业风口
  2. 天猫商品详情接口(APP,H5端)
  3. 软件定义汽车技术体系的研究
  4. react-native监测网络连接
  5. 高德地图:适配视野范围
  6. Python关于n位数个位、十位。。。(重数(例如:111))判断方法
  7. LRU(最近最少使用)算法
  8. 金蝶引出文件到服务器,金蝶K3标准凭证引出并引入
  9. TensorFlow零基础入门教程(一)
  10. 神经猫是用什么语言写的,HTML5改变世界