查看: 2880|回复: 0

图像处理中的边缘检测(Prewitt, Roberts, Sobel三种滤波)3

[复制链接]

该用户从未签到

发表于 2011-3-31 17:06:49 | 显示全部楼层 |阅读模式
分享到:
图像滞后阈值算法:
滞后阈值算法可以实现一个迭代或递归,采取Sb(和Sh)约为0.001(resp.0,1)的值。然后,测试一下改变阈值所发生的现象:

算法如下:

Sb=0.001 ;
Sh=0.1 ;
H(1 :n(1),1 :n(2))=zeros(1 :n(1),1 :n(2));
for i=1: (n(1)-1)
for j=1: (n(2)-1)
    if(E(i,j)>sb)
         H(i,j)=H(i,j)+ E(i,j);
else
   H(i,j)=250;
end
if(E(i,j)>sh)
   H(i,j)=H(i,j)+ E(i,j);
end

<span lang="EN-US">if(E(i,j)>sb&&E(i,j)figure
subplot 211
I=imread('bateau.gif');
imshow(I);     
title('Image original');
% Sobel 滤波

Sx=[-1 0 1;-2 0 2;-1 0 1];
Sy=[-1 -2 -1;0 0 0; 1 2 1];

subplot 223
Hx=filter2(Sx,I);
imshow(Hx);

subplot 224
Hy=filter2(Sy,I) ;
imshow(Hy);
title('image convoluer avec sobel en y');
figure
G=(sqrt(Hx.*Hx+Hy.*Hy));

n=size(G) ;
G(1 : n(1),1)=0 ;
G(1 : n(1),n(2))=0 ;
G(1,1 : n(2))=0 ;
G(n(1) , 1 :n(2))=0 ;
imshow(G,[]);


figure
teta=atan2(Hy,Hx) ;
imshow(teta);

figure
for i=2 : (n(1)-1)
for j=2 : (n(2)-1)
e1=0 ;
e2=0 ;


if(teta(i,j)>1& teta(i,j)-180 & teta(i,j)45& teta(i,j)-135& teta(i,j)90 & teta(i,j)-90& teta(i,j)135& teta(i,j)-45& teta(i,j)e1&&G(i,j)>e2)
      E(i,j)= G(i,j);
else
     E(i,j)=0;
end
end
end
imshow(E,[]);

Sb=0.001 ;
Sh=0.1 ;
H(1 :n(1),1 :n(2))=zeros(1 :n(1),1 :n(2));
for i=1: (n(1)-1)
for j=1: (n(2)-1)
    if(E(i,j)>sb)
         H(i,j)=H(i,j)+ E(i,j);
else
   H(i,j)=250;
end
if(E(i,j)>sh)

   H(i,j)=H(i,j)+ E(i,j);
end

<span lang="FR" style="">if(E(i,j)>sb&&E(i,j)
7.jpg
9.jpg
8.jpg
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-22 11:47 , Processed in 0.175110 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.