FAST算法

本文转自:http://blog.csdn.net/GH_HOME/article/details/51501588

本文解决以下问题

  1. FAST算法的基本原理
  2. FAST 算法在OpenCV中的调用

一. FAST算法的基本原理

1. FAST算法的动机

大部分特征检测算法的效果较好,但是达不到实时,因此提出FAST 
(Features from Accelerated Segment Test)

2. FAST算法的基本原理
  1. 在图像中任选一点p, 假定其像素(亮度)值为 IpIp
  2. 以3为半径画圆,覆盖p点周围的16个像素,如下图所示
  3. 设定阈值t,如果这周围的16个像素中有连续的n个像素的像素值都小于 IptIp−t 或者有连续的n个像素都大于 
    Ip+tIp+t, 那么这个点就被判断为角点。 在OpenCV的实现中n取值为12(16个像素周长的 3/4).
  4. 一种更加快的改进是: 首先检测p点周围的四个点,即1, 5, 9, 12四个点中是否有三个点满足超过Ip+tIp+t, 如果不满足,则直接跳过,如果满足,则继续使用前面的算法,全部判断16个点中是否有12个满足条件。

这里写图片描述


以上算法的缺点:很可能大部分检测出来的点彼此之间相邻,我们要去除一部分这样的点。为了解决这一问题,我们采用了最大值抑制的算法

假设P,Q两个点相邻,计算两个点与其周围的16个像素点之间的差分和V,去除V值较小的点。

2. FAST 算法总结
  1. 在速度上要比其他算法速度快很多
  2. 受图像噪声以及设定的阈值影响很大
  3. FAST不产生多尺度特征而且FAST特征点没有方向信息,这样就会失去旋转不变性。

FAST openCV调用

这里写图片描述

这里的threshold就是我们前文中提到的t

vector<KeyPoint> keyPoints;
FAST(image, keyPoints, 40);
  • 1
  • 2

这里默认开启了非最大值抑制,同时开启的检测type是16-9模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值