⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 712edge.m

📁 边缘检测的新方法
💻 M
字号:
blood=imread('cell.bmp');
[x,y]=size(blood);
b=double(blood);
N=sqrt(100)*randn(x,y);%生成方差为10的白噪声
I=b+N;
for i=1:x	%实际图像的灰度为0-255
   for j=1:y
      if(I(i,j)>255)
        I(i,j)=255;
      end
      if(I(i,j)<0)
        I(i,j)=0;
      end
   end
end
z0=max(max(I));		%求出图像中最大的灰度
z1=min(min(I));		%最小的灰度
T=(z0+z1)/2;
TT=0;
s0=0;n0=0;
s1=0;n1=0;
allow=0.5;		%新旧阈值的允许接近程度
d=abs(T-TT);
count=0;
while(d>=allow)
	count=count+1;
	for i=1:x
	   for j=1:y
	   	if(I(i,j)>=T)
	   	   s0=s0+I(i,j);
	   	   n0=n0+1;
	   	end
	   	if(I(i,j)<T)
	   	   s1=s1+I(i,j);
	   	   n1=n1+1;
	   	end
	    end
	 end
T0=s0/n0;
T1=s1/n1;
TT=(T0+T1)/2;
d=abs(T-TT);
T=TT;
end
seg=zeros(x,y);
for i=1:x
    for j=1:y
       if(I(i,j)>=T)
         seg(i,j)=1;	%阈值分割的图像
       end
    end
end
SI=1-seg;	%阈值分割后的图像求反,便于用腐蚀算法求边缘
se1=strel('square',3);	%定义腐蚀算法的结构
SI1=imerode(SI,se1);	%腐蚀算法
BW=SI-SI1;		        %边缘检测
%--------传统的边缘检测方法--------%
I=imread('cell.bmp');
BW1=edge(I,'sobel');
BW2=edge(I,'log');
BW3=edge(I,'canny');
% ----------图像显示--------
figure(1),imshow(I);title('原图');
figure(2),imshow(BW2);title('Sobel算子边缘检测结果');
figure(3),imshow(BW1);title('Gauss_Laplace边缘检测结果');
figure(4),imshow(BW1);title('Canny边缘检测结果');
figure(5),imshow(BW);title('边缘检测精确结果');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -