基于MATLAB数字图像处理杂草识别 联系客服

发布时间 : 星期五 文章基于MATLAB数字图像处理杂草识别更新完毕开始阅读5a9e74b80042a8956bec0975f46527d3240ca6a4

胀概念定义为

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