matlab练习程序(FAST特征点检测)

栏目: 编程工具 · 发布时间: 5年前

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

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

算法步骤:

matlab练习程序(FAST特征点检测)

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=60;   %阈值
for i=4:m-3
    for j=4:n-3
        p=img(i,j);    
        %步骤1,得到以p为中心的16个邻域点
        pn=[img(i-3,j) img(i-3,j+1) img(i-2,j+2) img(i-1,j+3) img(i,j+3) img(i+1,j+3) img(i+2,j+2) img(i+3,j+1) ...
            img(i+3,j) img(i+3,j-1) img(i+2,j-2) img(i+1,j-3) img(i,j-3) img(i-1,j-3) img(i-2,j-2) img(i-3,j-1)];

        %步骤2
        if abs(pn(1)-p)<t && abs(pn(9)-p)<t
           continue; 
        end
        
        %步骤3     
        p1_5_9_13=[abs(pn(1)-p)>t abs(pn(5)-p)>t abs(pn(9)-p)>t abs(pn(13)-p)>t];
        if sum(p1_5_9_13)>=3
            ind=find(abs(pn-p)>t);
            %步骤4         
            if length(ind)>=9
                score(i,j) = sum(abs(pn-p));      
            end
        end
    end
end

%步骤5,非极大抑制,并且画出特征点
for i=4:m-3
    for j=4:n-3
        if score(i,j)~=0
            if max(max(score(i-2:i+2,j-2:j+2)))==score(i,j)               
                [img(i-3,j), img(i-3,j+1), img(i-2,j+2), img(i-1,j+3), img(i,j+3), img(i+1,j+3), img(i+2,j+2), img(i+3,j+1), ...
                 img(i+3,j), img(i+3,j-1), img(i+2,j-2), img(i+1,j-3), img(i,j-3), img(i-1,j-3), img(i-2,j-2), img(i-3,j-1)]= ...
                 deal(255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255);
            end
        end
    end
end
figure;
imshow(img);

结果如下:

原图:

matlab练习程序(FAST特征点检测)

检测结果:

matlab练习程序(FAST特征点检测)

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


以上所述就是小编给大家介绍的《matlab练习程序(FAST特征点检测)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

点石成金

点石成金

[美] 史蒂夫·克鲁克 / De Dream' / 机械工业出版社 / 2006-8 / 39.00元

可用性设计是Web设计中最重要也是最困难的一项任务。《点石成金》的作者根据自己多年从业的经验,剖析用户的心理,在用户使用的模式、为浏览进行设计、导航设计、主页布局、可用性测试等方面提出了许多独特的观点,并给出了大量简单、易行的可用性设计的建议。这本书短小精悍,语言轻松诙谐,书中穿插大量色彩丰富的屏幕截图、趣味丛生的卡通插图以及包含大量信息的图表,使枯燥的设计原理变得平易近人。 此书适合从事W......一起来看看 《点石成金》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具