MATLAB二阶微分过零点进行边缘检测代码,不用工具箱,,急!!!

发布网友

我来回答

1个回答

热心网友

二阶微分计算公式:

程序: 

img = imread('rice.tif');

subplot(121);

imshow(img);

title('原图像');

I=double(img);

[m,n]=size(img);           %得到图像的大小(长和宽)

g=zeros(m,n);              %定义一个大小为S的零矩阵

%利用lapacian二阶微分进行边缘提取

for i=2:m-1

    for j=2:n-1

        g(i,j)=I(i+1,j)+I(i-1,j)+I(i,j-1)+I(i,j+1)-4*I(i,j);

    end

end 

for i=2:m

  for j=2:n-1

      if g(i,j)<20 %设阀值为20

         I(i,j)=0;              %将梯度值与阈值比较 ,大于T则把图像的灰度变为255,小于T则把图像的灰度变为0

      else

         I(i,j)=255;

      end

  end

end

%显示边缘提取后的图象

subplot(122);

imshow(I);

title('拉普拉斯边缘检测')


声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com