算法思想:如果一个像素与它邻域的像素差别较大(过亮或过暗) , 那它更可能是角点。

算法步骤:

1.上图所示,一个以像素p为中心,半径为3的圆上,有16个像素点(p1、p2、...、p16)。

2.定义一个阈值。计算p1、p9与中心p的像素差,若它们绝对值都小于阈值,则p点不可能是特征点,直接pass掉;否则,当做候选点,有待进一步考察;

3.若p是候选点,则计算p1、p9、p5、p13与中心p的像素差,若它们的绝对值有至少3个超过阈值,则当做候选点,再进行下一步考察;否则,直接pass掉;

4.若p是候选点,则计算p1到p16这16个点与中心p的像素差,若它们有至少9个超过阈值,则是特征点;否则,直接pass掉。

5.对图像进行非极大值抑制:计算特征点出的FAST得分值(即score值,也即s值),判断以特征点p为中心的一个邻域(如3x3或5x5)内,计算若有多个特征点,则判断每个特征点的s值(16个点与中心差值的绝对值总和),若p是邻域所有特征点中响应值最大的,则保留;否则,抑制。若邻域内只有一个特征点(角点),则保留。

代码如下:

clear all;
close all;
clc; img=imread('lena.jpg');
imshow(img) [m n]=size(img);
score=zeros(m,n); t=; %阈值
for i=:m-
for j=:n-
p=img(i,j);
%步骤1,得到以p为中心的16个邻域点
pn=[img(i-,j) img(i-,j+) img(i-,j+) img(i-,j+) img(i,j+) img(i+,j+) img(i+,j+) img(i+,j+) ...
img(i+,j) img(i+,j-) img(i+,j-) img(i+,j-) img(i,j-) img(i-,j-) img(i-,j-) img(i-,j-)]; %步骤2
if abs(pn()-p)<t && abs(pn()-p)<t
continue;
end %步骤3
p1___=[abs(pn()-p)>t abs(pn()-p)>t abs(pn()-p)>t abs(pn()-p)>t];
if sum(p1___)>=
ind=find(abs(pn-p)>t);
%步骤4
if length(ind)>=
score(i,j) = sum(abs(pn-p));
end
end
end
end %步骤5,非极大抑制,并且画出特征点
for i=:m-
for j=:n-
if score(i,j)~=
if max(max(score(i-:i+,j-:j+)))==score(i,j)
[img(i-,j), img(i-,j+), img(i-,j+), img(i-,j+), img(i,j+), img(i+,j+), img(i+,j+), img(i+,j+), ...
img(i+,j), img(i+,j-), img(i+,j-), img(i+,j-), img(i,j-), img(i-,j-), img(i-,j-), img(i-,j-)]= ...
deal(,,,,,,,,,,,,,,,);
end
end
end
end
figure;
imshow(img);

结果如下:

原图:

检测结果:

参考:https://www.cnblogs.com/wyuzl/p/7834159.html

matlab练习程序(FAST特征点检测)的更多相关文章

  1. FAST特征点检测&&KeyPoint类

    FAST特征点检测算法由E.Rosten和T.Drummond在2006年在其论文"Machine Learning for High-speed Corner Detection" ...

  2. FAST特征点检测

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

  3. FAST特征点检测算法

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

  4. FAST特征点检测features2D

    #include <opencv2/core/core.hpp> #include <opencv2/features2d/features2d.hpp> #include & ...

  5. OPENCV图像特征点检测与FAST检测算法

    前面描述角点检测的时候说到,角点其实也是一种图像特征点,对于一张图像来说,特征点分为三种形式包括边缘,焦点和斑点,在OPENCV中,加上角点检测,总共提供了以下的图像特征点检测方法 FAST SURF ...

  6. OpenCV特征点提取----Fast特征

    1.FAST(featuresfrom accelerated segment test)算法 http://blog.csdn.net/yang_xian521/article/details/74 ...

  7. 第十四节、FAST角点检测(附源码)

    在前面我们已经陆续介绍了许多特征检测算子,我们可以根据图像局部的自相关函数求得Harris角点,后面又提到了两种十分优秀的特征点以及他们的描述方法SIFT特征和SURF特征.SURF特征是为了提高运算 ...

  8. ORB特征点检测

    Oriented FAST and Rotated BRIEF www.cnblogs.com/ronny   这篇文章我们将介绍一种新的具有局部不变性的特征 -- ORB特征,从它的名字中可以看出它 ...

  9. [转]ORB特征提取-----FAST角点检测

    转载地址:https://blog.csdn.net/maweifei/article/details/62887831 (一)ORB特征点提取算法的简介 Oriented FAST and Rota ...

随机推荐

  1. python中除法的几种类型

    传统除法:直接后缀小数点,同样结果是和最大的小数点对齐 >>> 1/2 0 >>> 1.0/2 0.5 >>> 1/2.0 0.5 >> ...

  2. Leetcode:148_Sort List | O(nlogn)链表排序 | Medium

    题目:Sort List Sort a linked list in O(n log n) time using constant space complexity 看题目有两个要求:1)时间复杂度为 ...

  3. .NET手记-Autofac入门Getting Started

    内容主要翻译自官方文档,原文请看:http://autofac.readthedocs.org/en/latest/getting-started/index.html#application-sta ...

  4. C# 根据Combobox控件来动态显示TabControl下的子元素

    根据下来列表来动态显示TabControl下的元素 需要准备两个控件:Combobox (命名为:cbPrjType)和 TabControl (命名为:tabPrjType),TabControl下 ...

  5. iptables防DDOS攻击和CC攻击设置

    防范DDOS攻击脚本 #防止SYN攻击 轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp --syn -j syn-flood iptables ...

  6. Re:从零开始的MySQL入门学习

    Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器.由于这四个软件都是免费或开放式源码软件,因此使用这种不用花一分钱(人工成本除外)就可以建立起一 ...

  7. Oracle的数据并发与一致性详解(下)

    上篇介绍了数据并发与一致性的相关概念.以及oracle的事务隔离级别等内容,本篇继续介绍锁机制.自动锁.手动锁.用户自定义锁的相关内容. 请尊重作者劳动成果,转载请标明原文链接: https://ww ...

  8. FLV 封装格式解析

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10662941.html FLV (Flash Video) 是由 Adobe 公司推出的 ...

  9. Shell 实例:备份最后一天内所有修改过的文件

    在一个"tarball"中(经过 tar 和 gzip 处理过的文件)备份最后 24 小时之内当前目录下所有修改的文件. 程序代码如下: #!/bin/bash BACKUPFIL ...

  10. SQL 行列转换数据转换为字符串

    行列转换,将列数据转换为字符串输出 ) SET @center_JZHW = ( SELECT DISTINCT STUFF( ( SELECT ',' + ce_code FROM ap_cente ...