SUSAN角点检测算子的MATLAB实现.doc
- 文档编号:232047
- 上传时间:2022-10-07
- 格式:DOC
- 页数:2
- 大小:702.50KB
SUSAN角点检测算子的MATLAB实现.doc
《SUSAN角点检测算子的MATLAB实现.doc》由会员分享,可在线阅读,更多相关《SUSAN角点检测算子的MATLAB实现.doc(2页珍藏版)》请在冰豆网上搜索。
SUSAN角点检测算子的MATLAB实现
[filename,pathname,~]=uigetfile('*.jpg','选择JPG格式图片');
if~ischar(filename)
return
end
str=[pathnamefilename];
pic=imread(str);
iflength(size(pic))==3
img=rgb2gray(pic);
end
[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:
7
if(p-4)^2+(q-4)^2<=12%半径一般在3~4之间
ifabs(img(i,j)-tmp(p,q)) cnt=cnt+1; end end end end USAN=[USANcnt]; end end g=max(USAN)/2;%给定的阈值 fork=1: length(USAN) ifUSAN(k) USAN(k)=g-USAN(k);%反向相减,使得USAN取局部最大 else USAN(k)=0; end end 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]]; end end end imshowpair(pic,pic,'montage'); holdon plot(loc(: 1)+size(pic,2),loc(: 2),'*'); holdoff 运行结果图如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SUSAN 点检 测算 MATLAB 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)