SIFT和SURF都是比较好的特征检测算法,但是你是否想每年都为这两个算法花一些钱去买它们的使用权呢?这两个算法都是受版本保护的,如果要使用必须付费购买。那么有没有不付费,也有与之相比美的算法呢?OpenCV的爱好者开发了一个新的免费算法来替代SIFT和SURF,这个算法就是ORB。

理论:

作为一个OpenCV粉丝,莫过于看到ORB算法的出处,居然是OpenCV Labs出品,这个算法在2011年由Ethan Rublee, Vincent Rabaud, Kurt Konolige and Gary R. Bradski发表在论文《ORB: An efficient alternative to SIFT or SURF》里。顾名思义,它在计算成本、匹配性能以及主要专利等方面是SIFT和SURF的一个很好的替代品。因为SIFT和SURF算法,你需要付钱才能使用它,但是ORB不用付费。

ORB算法整合了FAST关键点检测和BRIEF描述,同时在性能方面做了很多增强。首先它使用FAST去寻找关键点,接着使用Harris角方法找最优的N个点,然后用金字塔产生多尺度特征。但是FAST算法有一个问题,就是它不会计算角点的方向,所以怎么样才能加入旋转不变性呢?ORB开发人员接着下来作了如下修改。采用灰度质心法(Intensity Centriod)为每个特征点计算了主方向,这个向量方向是从角点位置指向这一块区域的质心方向。为了提高旋转不变性,用x和y计算矩,x和y应该在半径r的圆形区域内&#x

在OpenCV里使用ORB相关推荐

  1. 彩色图片在OpenCV里的表示方式

    前面了解了灰度图片在python里的表示方式,也是图片的数据结构,它是采用numpy的ndarray来存储,是一个二维的数据结构.那么彩色图片是怎么样表示呢?难道也是采用二维数组吗?在理解表示方式之前 ...

  2. OpenCV里的常用Rect用法

    OpenCV里通常定义一个矩形有两种方式,一种是通过矩形左上角和矩形宽高来定义: Rect_ (_Tp _x, _Tp _y, _Tp _width, _Tp _height) 另一种是通过矩形左上角 ...

  3. python直角坐标转极坐标_Python在OpenCV里实现极坐标变换功能

    在中学里学习过直角坐标系,也叫做笛卡尔坐标系,它是正交坐标系,不过也学习过极坐标系,这种坐标系比较适合大炮发射的场合.极坐标系的定义如下: 在 平面内取一个定点O, 叫极点,引一条射线Ox,叫做极轴, ...

  4. 在OpenCV里用fillPoly填充多边形

    前面学习过fillConvexPoly函数,这个函数是用来填充凸多边形的,但在OpenCV里还添加了fillPoly函数,这个函数与fillConvexPoly函数有什么差别呢?一般来说,fillPo ...

  5. 在OpenCV里实现游戏外挂的位置识别

    前面学习过模板识别的函数,也演示过它的使用,但是还是不少学生来问我能不能用它来开发游戏的外挂,我的回答应该是肯定的.因为游戏是一种图形的展示,使用窗口的方法来识别已经不可能,根据位置识别只能固定的目标 ...

  6. 在OpenCV里使用机器学习库sklearn 实现手写数字识别1

    前面学习过KNN的方式来实现手写数字识别,不过效果一般,那么有没有别的方法来试一试,或许可以改进一点呢.在本文里将要介绍使用SVM和HOG的方式来实现手写数字识别,比如最终结果如下图: 在这个例子里与 ...

  7. 在OpenCV里使用图片修复

    有一些旧的图片可能保存得不好,会导致丢失了一些像素,如下图这样: 这时如果有人觉得这个图片很珍贵,要想去修复它,怎么办呢? 在OpenCV里提供了两种算法来进行图片修复,第一种是cv.INPAINT_ ...

  8. opencv里的Moments成员变量的理解

    在opencv里,Moments定义如下(参考opencv官方文档) class Moments{public:Moments();Moments(double m00, double m10, do ...

  9. 在OpenCV里用drawContours画轮廓

    在OpenCV里,找到物体的轮廓是最常用的功能,为什么这样说呢?因为太多的应用要使用这个功能了,比如数物体的个数,在种子实验室里常常要使用计算种子的个数,这时就需要拍照种子的照片,然后根据照片来数出种 ...

最新文章

  1. Red Hat忘记root密码,重置root管理员密码
  2. kinect 录制彩色和深度视频
  3. Linux网络服务之DNS(2)
  4. 为什么现在辞职的年轻教师越来越多?
  5. 前途,路应该怎么走?
  6. ubuntu java环境变量_hadoop:伪分布模式环境变量的配置
  7. Denoise_bayerdomain
  8. maya多边形建模怎样做曲面_maya多边形建模教程_maya建模教程
  9. 手把手教你SSM整合开发办公系统(OA)——报销单(含源码)
  10. 硬件防火墙和软件防火墙有什么区别
  11. win10桌面上鼠标右键卡顿(一直显示小圆圈)解决办法
  12. Springboot:商品库存并发更新,乐观锁失败重试机制
  13. 怎么计算机会成本,机会成本计算公式,实例解读机会成本
  14. swift脚本编程:一键生成AppIcon
  15. Microchip中文资料下载 .
  16. RSN Informatioon Element
  17. (php毕业设计)基于php学生在线考试管理系统
  18. Android中常用的adb指令
  19. 游戏外挂开发系列--游戏喊话器
  20. 连接FTP显示无法解析服务器,Serv-U服务FTP无法连接的原因分析

热门文章

  1. 荣耀v10鸿蒙系统死机了,抢救一台进水近乎报废的华为荣耀V10,不换主板,满血复活!...
  2. Fastapi交互式文档实现方法讲解
  3. matlab imshow同时多,matlab怎么同时显示imshow 两幅图片
  4. 涨知识!华为备忘录还能这样玩,难怪古人说好记性不如烂笔头
  5. IDEA 学生无需破解免费申请(可用学生证和教育邮箱申请)
  6. python自动生成企业名称查重脚本。
  7. 删掉带页眉的空白页结果把所有页眉都删掉解决办法
  8. lol韩服服务器位置,LOL韩服已成全球最大服务器,国服一区沦为村服?
  9. 生产车间执行6s精益生产管理
  10. [2G显卡]使用darknet/YOLO训练自己的数据