SUSAN角点检测

close all;
clear all;
I=imread('corner2.gif');
[posX,posY]=susan(I,3);
figure;
imshow(I);hold on;
plot(posX,posY,'g*');

function [posX,posY]=susan(I,radius)
%SUSAN角点检测
%I:输入图像
%radius:圆形模板的半径
%(posX,posY):角点坐标
[r,c]=size(I);
mask=generatemask(radius);
th1=20;%阈值越小,提取的角点越多
th2=sum(mask(:))/2;%阈值越大,提取的角点越多
R=zeros(r,c);%角点响应值
res=zeros(r,c);%是否是角点
for i=radius+1:r-radius
    for j=radius+1:c-radius
        B=I(i-radius:i+radius,j-radius:j+radius);
        usan=(abs(B-I(i,j))<th1).*mask;%USAN区域
        N=sum(usan(:));
        if(N<th2)
            R(i,j)=th2-N;
        end
    end
end

%非极大值抑制
tr=radius+2;
for i=tr+1:r-tr
    for j=tr+1:c-tr
        tmp=R(i-tr:i+tr,j-tr:j+tr);
     
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聚沙塔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值