FAST是一种角点检测算法,其思想源于corner的定义,也就是检测候选点周围像素点的像素值,如果候选点周围邻域内有足够多的像素点与该候选点的灰度值差别够大,则认为该候选点为一个特征点。

FAST检测角点的过程:

1. 初步筛选,如下图所示,将像素点P1、P5、P9、P13的像素值与中心像素点P的像素值进行比较, 如果至少有三个像素点的像素值都大于Ip + t,或者都小于Ip - t,则像素点P可能是角点,并在步骤2中进一步判断,否则像素点P不是角点。

2.进一步判断,将像素点P周围的16个像素点的像素值与像素点P的像素值进行比较, 如果有连续12个像素点的像素值都大于Ip +t,或者都小于Ip - t,则像素点P是角点。

3. 非极大抑制,首先计算角点的FAST得分(记为V),也就是上一步中12个连续像素点的像素值与该点像素值的差值的绝对值之和,按如下公式计算;然后,对于相邻的两个角点,比较它们的FAST得分,保留得分较大的角点。

分析与总结:

该角点检测算法的速度比较快,但是也存在一些缺点:

1. 检测效果依赖于阈值t

2. 当图像中存在噪声点时,检测效果不理想

3. 不产生多尺度特征,所以不具有尺度不变性

4. 特征点没有方向性,这样会失去旋转不变性

代码实现:(opencv3.0)

#include <opencv2/core/core.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/highgui/highgui.hpp>#include <vector>using namespace cv;void main()
{Mat image;image = imread("dog.png");// vector of keyPointsstd::vector<KeyPoint> keyPoints;// construction of the fast feature detector objectPtr<FastFeatureDetector> fast;fast = cv::FastFeatureDetector::create(40); // 检测的阈值为40// feature point detectionfast->detect(image, keyPoints);drawKeypoints(image, keyPoints, image, cvScalar(0, 225,0), DrawMatchesFlags::DRAW_OVER_OUTIMG);imshow("FAST feature", image);cvWaitKey(0);
}

相关的论文:

Features from Accelerated Segment Test (FAST)

Real-time Video Annotations for Augmented Reality

Faster and better: a machine learning approachto corner detection

FAST角点检测算法相关推荐

  1. FAST角点检测算法(二)- 非极大值抑制筛选fast特征点

    FAST角点检测算法(二)- 非极大值抑制筛选fast特征点 author@jason_ql(lql0716) http://blog.csdn.net/lql0716 fast角点检测算法参考文章& ...

  2. 图像局部特征(三)--FAST角点检测子

    Features From Accelerated Segment Test 1. FAST算法原理 博客中已经介绍了很多图像特征检测算子,我们可以用LoG或者DoG检测图像中的Blobs(斑点检测) ...

  3. fast角点检测 java_米联客 ZYNQ/SOC 精品教程 S04-CH11 快速角点检测之硬件实现

    软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...

  4. Python+OpenCV:图像快速角点检测算法(FAST Algorithm for Corner Detection)

    Python+OpenCV:图像快速角点检测算法(FAST Algorithm for Corner Detection) 理论 Feature Detection using FAST Select ...

  5. OpenCV Fast角点检测

    FAST是一种用于角点检测的算法,该算法的原理是取图像中检测点,以改点为圆心的周围邻域内像素点判断监测点是否为角点. OpenCV中的FAST检测算法是用传统方法实现的. 实例化fast fast = ...

  6. 基于光强的角点检测(SUSAN角点检测、FAST角点检测、FAST-ER角点检测)

    Corner Feature Detector(Intensity-Based) 基于光强比较的角点检测,直接比较光强(像素灰度值),而不计算梯度.所以实时性更好,所需的存储空间更小. SUSAN 角 ...

  7. 角点检测和匹配之Harris与FAST角点检测

    这一章主要内容: 1. Harris角点检测 2. FAST特征检测 3. 尺度不变的SURF特征检测 4.SURF检测描述 一.引言 在计算机视觉中,特征点或称兴趣点,角点(即图像的极值点,线段的终 ...

  8. 【特征检测】FAST特征点检测算法

    简介 在局部特征点检测快速发展的时候,人们对于特征的认识也越来越深入,近几年来许多学者提出了许许多多的特征检测算法及其改进算法,在众多的特征提取算法中,不乏涌现出佼佼者. 从最早期的Moravec,到 ...

  9. FAST特征点检测算法

    一.FAST算法简介   如今,特征点检测的算法有很多,从最初的Moravec,到Harris,再到SIFT.SUSAN.GLOH.SURF算法,可以说特征点提取算法层出不穷.各种改进算法PCA-SI ...

最新文章

  1. 在相同的后端上重新设计前端是什么效果? | 每日趣闻
  2. 成功解决打包时不能import自定义的包或库出现运行exe时No module named 缺少包
  3. python 计算协方差矩阵_opencv2学习:计算协方差矩阵
  4. C#基于LibUsbDotNet实现USB通信(一)
  5. Ubuntu扩展触摸屏触控错位修复
  6. c#自定义事件的使用方法
  7. JAVA 架构知识分享
  8. java .z文件_java 压缩文件
  9. mysql 查询姓王_MySQL查询语句练习题,测试足够用了
  10. C Tricks(十一)—— 排除一个二维数组的边界
  11. npm修改全局包安装路径
  12. 【贪心+双指针】LeetCode 11. Container With Most Water
  13. Atitit 信用管理概论 attilax学习心得
  14. android10新特性 视频解码,Android万能视频播放器10-OpenGL ESMediaCodec解码数据t
  15. 《统计决策论及贝叶斯分析》
  16. mina简单实用_Mina框架的简单例子
  17. 北京市居民公共交通出行特征
  18. 谷歌发现利用零日漏洞的攻击、黑客通过漏洞入侵红十字会|2月17日全球网络安全热点
  19. 启动keepalived报错(VI_1): received an invalid passwd!
  20. GRBL四:GRBL框架解析(转载)

热门文章

  1. 360兼容模式页面错位_如何解决360的兼容模式下页面的样式会错乱
  2. python xlwings api_Python与Excel——Xlwings实战
  3. Excel中最常用的求和公式集合
  4. 移动软件开发 实验3
  5. 企业邮箱怎么登录?企业邮箱登录方法
  6. Linux脚本csh 遇到 Badly placed ()'s 的问题。
  7. 【深度学习】关于解决caffe中draw_net无法使用的问题
  8. linux 查看软件版本
  9. 不同证券账户有什么区别?
  10. 如何利用多传感器融合技术解决机器人可靠定位问题?