www.gusucode.com > 《图像配准技术及其Matlab编程实现》--源码程序 > 《图像配准技术及其Matlab编程实现》/match/EdgeDetect.m

    function h=EdgeDetect(filename)
%基于一阶的边缘检测
%使用的是一阶梯度算子
f=imread(filename);
figure,imshow(f);
[width,height]=size(f);
g=zeros(width,height);
h=zeros(width,height);
df=im2double(f);

wx=[-1 0;1 0];
wy=[-1 1;0 0];
for i=2:width-1
    for j=2:height -1
        gw=[df(i,j) df(i,j+1);df(i+1,j) df(i+1,j+1)];
        g(i,j)=sqrt((sum(sum(wx.*gw)))^2+(sum(sum(wy.*gw)))^2);
    end
end

T=0.25*max(g(:));
h=g>=T;
figure,imshow(h);

%edgedetect('ct.bmp')