资源简介
用matlab编写的susan边缘检测算法程序,使用的是37像素的圆形模板。
代码片段和文件信息
function image_out=susan(imthresthold)
d=length(size(im));
if d==3
image=double(rgb2gray(im));
elseif d==2
image=double(im);
end
mask=([0 0 1 1 1 0 0;0 1 1 1 1 1 0;1 1 1 1 1 1 1;1 1 1 1 1 1 1;1 1 1 1 1 1 1;0 1 1 1 1 1 0; 0 0 1 1 1 0 0]);
R=zeros(size(image));
nmax=3*37/4;
[a b]=size(image);
new=zeros(a+7b+7);
[cd]=size(new);
new(4:c-44:d-4)=image;
for i=4:c-4
for j=4:d-4
Current_image=new(i-3:i+3j-3:j+3);
Current_masked_image=mask.*Current_image;
temp1 = (Current_masked_image-Current_masked_image(44))/thresthold;
temp2 = temp1.^6;
Current_thresholded = exp(-1*temp2);
g=sum(Current_thresholded(:));
if nmax R(ij)=0;
else
R(ij)=nmax-g;
end
end
end
image_out=R(4:c-44:d-4);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 831 2009-03-20 10:48 susan\susan.m
目录 0 2009-03-20 10:55 susan
----------- --------- ---------- ----- ----
831 2
评论
共有 条评论