SUSAN角点检测算子的MATLAB实现Word文件下载.doc
《SUSAN角点检测算子的MATLAB实现Word文件下载.doc》由会员分享,可在线阅读,更多相关《SUSAN角点检测算子的MATLAB实现Word文件下载.doc(2页珍藏版)》请在冰豆网上搜索。
end
str=[pathnamefilename];
pic=imread(str);
iflength(size(pic))==3
img=rgb2gray(pic);
[M,N]=size(img);
timg=zeros(M+6,N+6);
timg(4:
end-3,4:
end-3)=img;
%扩展图像边缘3个像素
img=timg;
t=45;
%阈值
USAN=[];
%用于存放USAN
fori=4:
M+3
forj=4:
N+3
tmp=img(i-3:
i+3,j-3:
j+3);
cnt=0;
%计数专用,统计圆形邻域内满足条件的像素点个数
forp=1:
7
forq=1:
if(p-4)^2+(q-4)^2<
=12%半径一般在3~4之间
ifabs(img(i,j)-tmp(p,q))<
t
cnt=cnt+1;
end
end
end
end
USAN=[USANcnt];
end
g=max(USAN)/2;
%给定的阈值
fork=1:
length(USAN)
ifUSAN(k)<
g
USAN(k)=g-USAN(k);
%反向相减,使得USAN取局部最大
else
USAN(k)=0;
imgn=reshape(USAN,M,N);
%USAN向量张成二维图像
imgn=fliplr(imrotate(imgn,-90));
%调整图像
loc=[];
fori=2:
M-1
forj=2:
N-1
sq=imgn(i-1:
i+1,j-1:
j+1);
sq=reshape(sq,1,9);
sq=[sq(1:
4),sq(6:
9)];
ifimgn(i,j)>
sq%局部非极大值抑制
loc=[loc;
[j,i]];
imshowpair(pic,pic,'
montage'
holdon
plot(loc(:
1)+size(pic,2),loc(:
2),'
*'
holdoff
运行结果图如下: