胀概念定义为
2.腐蚀运算:
腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。一般意义的腐蚀概念定义为
3.开运算(先腐蚀后膨胀):
先腐蚀后膨胀的过程称为开运算。用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
4.闭运算(先腐蚀后膨胀):
先膨胀后腐蚀的过程称为闭运算。用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
5、程序和结果: 原图
灰度化及阈值分割
Cao=double(imread('li.jpg')); % 读入图像
r=Cao(:,:,1);g=Cao(:,:,2);b=Cao(:,:,3);%分析颜色特征 Caogray=(2*g-r-b); %依据颜色特征将彩色图像转化为灰度图像
% Caogray=g;%求出图像大小 [x,y]=size(Caogray); I=double(Caogray); SII=I;
for i=1:x %实际图像灰度为0-255 for j=1:y
if(I(i,j)>180) I(i,j)=255; end
if(I(i,j)<100) I(i,j)=0; end end end
z0=max(max(Caogray));%求出图像最大灰度 z1=min(min(Caogray));%求出图像最小灰度 T=(z0+z1)/2; TT=0; S0=0;n0=0; S1=0;n1=0;
allow=0.2; %新旧阈值接近情况 d=abs(T-TT);
count=0;%记录计次循环
while(d>=allow)%迭代阈值最佳分割算法 count=count+1; for i=1:x for j=1:y
if(Caogray(i,j)>=T) S0=S0+Caogray(i,j); n0=n0+1; end
if(Caogray(i,j) Seg=zeros(x,y); for i=1:x for j=1:y if(Caogray(i,j)>=T) Seg(i,j)=1;%阈值分割图像 end end end for i=1:x for j=1:y