基于MATLAB数字图像处理杂草识别Word文档格式.docx
- 文档编号:16248254
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:16
- 大小:1.92MB
基于MATLAB数字图像处理杂草识别Word文档格式.docx
《基于MATLAB数字图像处理杂草识别Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于MATLAB数字图像处理杂草识别Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
在我国,杂草分布区域也十分广泛,据我国农业植保总站近年调查发现,我国农田杂草约1500多种,其中给农作物造成严重危害的杂草有17种;
危害范围较广、危害较严重的主要杂草有31种;
地域性杂草有24种;
一般不对农作物造成较严重危害的次要杂草有183种[2]。
为了减轻草害,人们投入了大量的人力与物力。
统计表明,美国每年因为杂草在64种农作物中造成的损失达75亿美元,而每年用于化学除草的费用高达36亿美元,用于机械和其它除草的费用达26亿美元[3]。
我国用在除草上的劳动量也高达20-30亿个劳动日,即便如此,我国草害造成的粮食损失平均达%,年损失粮食产量约17500kt[4]。
人们为了减轻杂草对农作物的危害以及造成的经济损失,经常采用的几种除草方法包括机械除草、化学除草、人力除草、静电除草,还有生物除草等。
人力除草由于浪费人力,效率又低,现在很少被使用;
机械除草虽然效率较高,对环境污染小,但需消耗大量的动力,造成土壤压实,对下茬作物的生长不利;
静电除草能除掉部分杂草,但可能造成作物烧伤,甚至影响土壤结构,降低土壤的生产能力;
生物除草是从分子生物学角度进行研究,利用动物、昆虫、病菌等方法防除某些杂草,但还没有真正应用于生产。
目前应用最广泛的除草方法是化学除草,化学除草是利用化学农药(除草剂)进行防除杂草的方法,其主要特点是高效、省工,尤其是可以免去繁重的田间除草劳动,解放田间的劳动力,正因为化学除草具有其他除草方法所不具备的优点而被广泛应用。
但是,在人们大量的使用除草剂防治草害的同时,也产生了许多不良影响,如污染农副产品及破坏生态平衡。
人们从化学除草所带来的负面影响,已深刻认识到单纯依赖化学防治和“地毯式”大量喷洒除草剂的错误做法[5]。
因此,想到应该采取一些有利的措施,既能有效的消除草害,提高粮食作物的产量,又能保护好人们的生存环境,达到可持续发展的目的,这就使得科学工作者对杂草控制新方法的研究成为了必然。
针对这种情况,通过研究,我们利用图像处理技术来识别杂草并确定杂草的位置和类别,从而为作物田间精确喷洒除草剂的自动化作业提供理论与技术支持。
2、杂草识别的研究方法
主要有:
颜色特征分析法、形状特征分析法、纹理特征分析法、光谱分析法和位置特征分析法与区域生长法。
1.颜色特征分析法
颜色特征分析法是用于杂草识别的重要方法。
在大自然中,植物呈现绿色,土壤呈黄褐色,岩石和无生命的植物残渣呈淡黄色。
根据植物和背景的颜色特征差异就可以将植物从复杂的土壤背景中分离出来。
有些杂草的茎呈现褐色,根据杂草和作物的颜色差异能够将它们区分开。
2.形状特征分析法
形状特征分析法是利用植物的叶片形状差异进行识别。
基本形状特征包括面积、周长、长度和宽度等,根据这几个基状匹配函数来识别杂草种类,他们研究了3种草(筒麻、狐尾草和打碗花)和大豆苗在子叶生长期的形状。
这种方法不受子叶的大小和方向的影响,但当叶子形状复杂和叶子数目较多时却无能为力。
3.纹理特征分析法
纹理是由很多细小的单元构成,从整体上能反应某种规律性,其灰度分布表现出某种周期性。
仔细观察,会发现植物的叶片有着不同的纹理。
因而可以利用叶面的纹理信息来识别作物和杂草。
用于特征提取的纹理特征为:
共生矩阵、方向行灰度级能量、方向滤波掩模和分形维数、局部极值等。
4.光谱分析的识别方法
光谱分析方法是根据物体对光的反射特性的不同,利用杂草、农作物和土壤背景的反射光谱的不同进行分析,达到识别杂草的目的。
植物在生长过程中,由于植物叶面组织结构的不同,对一定波长的太阳光吸收和反射也有所不同,因此可利用这种特性来区分杂草、作物和土壤背景。
5.位置分布特征法
位置分布特征法是基于作物的规律性种植提出的一种快速识别作物和行间杂草的方法。
利用这种方法可以计算出杂草在田间分布的密度,对于条播作物除草具有广泛的研究意义和价值。
曾经采用纵向统计灰度值的方法,提取作物行信息,从而达到识别的目的。
6.区域生长法
区域生长法是指将成组的像素或区域发展成更大区域的过程。
从种子点的集合开始,从这些点的区域是通过将与每个种子点有相似属性像强度、、纹理颜色等的相邻像素合并到此区域。
3、课题研究的主要内容:
本课题以农作物为研究对象,以实现杂草的采集、处理、识别为目的,在总结前人研究成果的基础上,结合已有的杂草识别理论和方法,研究适合基于MATLAB数字图像处理的杂草实时处理与识别的方法,并在MATLAB平台上进行图像的采集、处理及识别测试。
通过不同方法的对比实验,提高处理与识别速度,并为农田机器视觉的杂草识别提供良好的理论基础。
研究内容如下:
1.图像的采集;
2.杂草与背景分离的研究设计。
分析颜色特征,然后依据颜色特征将彩色图像转化成灰度图像;
然后利用阈值分割中的迭代运算进行了分离试验;
3.农作物与杂草分离的研究设计。
利用农作物大部分杂草分布于作物之间的特点,采取区域生长法分离农作物与杂草;
4.得到的图像有明显的杂质,先将图像进行二值化,然后再通过形态学滤波法滤除杂质,得到结果。
4、杂草图像特征提取及识别系统概述
实验系统的整体结构:
本实验系统实现了从杂草图像采集、处理、识别的一系列过程,通过软件接口与单片机等硬件相连,使得整个系统能够顺利运行。
下面是系统的组成结构图:
系统整体结构框图
实验系统流程图:
5.杂草与土壤背景实时分割的研究
1.图像分割概述:
图像分割是图像处理当中最重要的部分,也是一种基本的计算机视觉技术。
它根据某种同一性把一整幅图像划分为若干子区域,每一区域对应于某一物体或物体的一部分。
进行图像分割的最终目的是为了对景物或物体进行描述,而许多不同种类的图像或景物部分都可作为据以分割的分片,并且有许多不同的方法可从图像中提取这些部分。
图像分割分为灰度图像分割和彩色图像分割,它们的大部分算法在分割思想上是一致的,只是彩色图像要比灰度图像包含着更多的信息,而且具有多种彩色空间表达方式。
尽管人们在图像分割方面做了许多研究工作,但由于没有通用的分割理论,现已提出的分割算法大都是针对具体问题的,并没有一种适合所有图像的通用分割算法。
那么彩色图像分割算法的关键就在于利用丰富的彩色信息达到图像分割的目的。
本课题中的图像分割,主要是去除杂草图像中的土壤背景。
为了将绿色植物与土壤有效的分割,需要对原始图像数据进行变换,从而得到最能反映分类本质的特征。
对于彩色图像分割的问题,首先要选择好合适的方法,利用这个颜色特征将彩色图像转变成灰度图像,再确定阈值将灰度图像二值化。
2.阈值分割方法:
利用上述颜色特征组合将彩色图像转化成灰度图像,然后根据图像中要提取的杂草区与背景区在灰度特性上的差异把图像视为具有不同灰度级的区域组合,通过选取阈值将杂草区域从背景中分离出来。
采用阈值法分割阈值的选取至关重要,如果阈值选得过高,则过多的目标点将被误分为背景,阈值选的过低,则目标点不能完全分离出.这将影响分割后二值图像
目标大小和形状,甚至使目标丢失。
因此,本书中采用迭代法求取最佳阈值的分割算法,具体步骤如下:
1.求出图像中最大和最小灰度值S1和Sh,令初始阈值为:
2.根据阈值Tk将灰度图像分成目标和背景两部分(第一次分割时Tk=T0),然后求出目标和背景两部分的平均灰度值S1和S2:
式中:
S(i,j)为图像上(i,j)点的灰度值;
N(i,j)为(i,j)点的权重系数,一般来说N(i,j)=1或者0;
3.求出新的阈值:
4.如果Tk=Tk+1,则算法结束;
否者k→k+1,转步骤2继续执行。
3.区域生长:
区域生长是指从图像的某个位置开始,使每块区域变大,直到被比较的像素与区域像素具有显著差异为止。
具体实现时,在每个要分割的区域内确定一个种子点,判断种子像素周围邻域是否具有与种子像素相似的像素,若有,就将新的像素包含到区域内,并作为新的种子继续生长,直到没有满足条件的像素点时为止。
区域生长实现分割有下列三个关键技术,不同的算法主要区别在于这三点的不同。
1.种子点的选取。
通常选择待提取区域的具有代表性的点,可以是单个像素也可以是包括若干个像素的子区域,可根据具体问题利用先验知识来选择。
2.生长准则的确定(相似性准则)。
一般根据图像的特点,采用与种子点的距离度量(彩色、灰度、梯度等量之间的距离)。
3.区域停止生长的条件。
可以采用区域大小、迭代次数或区域饱和等条件。
4、形态学滤波:
数学形态学是由一组形态学的子组成的,它的有4个:
膨胀(或扩张)、腐蚀(或侵蚀)、开启和闭合,它们在和中各有特点。
基于这些基本运算还可推导和组合成各种数学形态学实用算法,用它们可以进行图像形状和结构的分析及处理,包括、、、、和恢复等。
滤波使用的几种简单对称结构元素(圆形、方形、菱形)如下图所示:
基本形态学变换:
1.膨胀运算:
膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。
可以用来填补物体中的空洞。
一般意义的膨胀概念定义为
2.腐蚀运算:
腐蚀是一种消除边界点,使边界向内部收缩的过程。
可以用来消除小且无意义的物体。
一般意义的腐蚀概念定义为
3.开运算(先腐蚀后膨胀):
先腐蚀后膨胀的过程称为开运算。
用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。
4.
闭运算(先腐蚀后膨胀):
先膨胀后腐蚀的过程称为闭运算。
用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
5、程序和结果:
原图
灰度化及阈值分割
Cao=double(imread('
'
));
%读入图像
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;
fori=1:
x%实际图像灰度为0-255
forj=1:
y
if(I(i,j)>
180)
I(i,j)=255;
end
if(I(i,j)<
100)
I(i,j)=0;
end
z0=max(max(Caogray));
%求出图像最大灰度
z1=min(min(Caogray));
%求出图像最小灰度
T=(z0+z1)/2;
TT=0;
S0=0;
n0=0;
S1=0;
n1=0;
allow=;
%新旧阈值接近情况
d=abs(T-TT);
count=0;
%记录计次循环
while(d>
=allow)%迭代阈值最佳分割算法
count=count+1;
fori=1:
x
if(Caogray(i,j)>
=T)
S0=S0+Caogray(i,j);
n0=n0+1;
if(Caogray(i,j)<
T)
S1=S1+Caogray(i,j);
n1=n1+1;
T0=S0/n0;
T1=S1/n1;
TT=(T0+T1)/2;
d=abs(T-TT);
T=TT;
Seg=zeros(x,y);
Seg(i,j)=1;
%阈值分割图像
if(SI(i,j)==0)
SII(i,j)=1;
if(SI(i,j)==1)
SII(i,j)=0;
SI=1-Seg;
figure,imshow(SII);
区域生长法分割杂草和作物
A0=imread('
图片'
);
%读取图像
seed=[1,2];
%选择起始位置
thresh=31;
%相似性选择阈值
A=rgb2gray(A0);
%灰度化
A=imadjust(A,[min(min(double(A)))/255,max(max(double(A)))/255],[]);
A=double(A);
%将图像灰度化
B=A;
[r,c]=size(B);
%r为行数,c为列
n=r*c;
%计算图像包含点的个数
pixel_seed=A(seed
(1),seed
(2));
%原图起始点灰度值
q=[seed
(1),seed
(2)];
%q用来装载起始位置
top=1;
%循环判断flag
M=zeros(r,c);
%建立一个与原图大小一样的矩阵
M(seed
(1),seed
(2))=1;
%将起始点赋为1,其余为0
count=1;
%计数器
whiletop~=0%循环结束条件
r1=q(1,1);
%起始点行位置
c1=q(1,2);
%起始点列位置
p=A(r1,c1);
%起始点灰度值
dge=0;
fori=-1:
1%周围点循环判断
forj=-1:
1
ifr1+i<
=r&
r1+i>
0&
c1+j<
=c&
c1+j>
0%保证在点周围范围内
ifabs(A(r1+i,c1+j)-p)<
=thresh&
M(r1+i,c1+j)~=1
top=top+1;
%满足判定条件则top+1,top为多少,则q的行数有多少
q(top,:
)=[r1+i,c1+j];
%将满足判定条件的周围点位置赋予q,q记载了满足判定的每一外点
M(r1+i,c1+j)=1;
%满足判定条件将M中相对应的点赋1
%统计满足条件的点个数,其实与top此时的值一样
B(r1+i,c1+j)=1;
%满足判定条件将B中相对应点赋值1
end
ifM(r1+i,c1+j)==0;
%如果M中相对应的值为0,将dge赋值为1,也就是说这几个点不满足条件
dge=1;
else
%在图像外将dge赋值为1
%此时对周围几点判断完毕,在点在图像外或不满足判定条件则将dge赋为1,满足条件dge为0
ifdge~=1
B(r1,c1)=A(seed
(1),seed
(2));
%将原图起始位置赋予B
ifcount>
=n%如果满足判定条件的点个数大于等于n
top=1;
q=q(2:
top,:
top=top-1;
end
subplot(121),imshow(B,[]);
二值化及形态学滤波
Image1=im2double(imread('
T=graythresh(Image1);
BW=im2bw(Image1,T);
figure,imshow(BW),title('
二值化图像'
SE=strel('
square'
Morph=imopen(BW,SE);
Morph=imclose(Morph,SE);
figure,imshow(Morph),title('
形态学滤波'
7.程序测试中的问题:
1.第一部分的程序,在MATLAB中调试运行的时候,结果图像使全黑色,经过检查,有一点的字打错了,然后就是像素点的值域选择有点小,调到180后比较理想。
2.第二部分的程序,阈值的选取不是很合适,导致结果不是很理想。
6、实验总结:
通过这次数字图像处理课程的设计,我们对我们所学习的知识有了更深层次的理解,包括其原理算法等,是对课堂所学的内容最好的巩固。
熟悉和掌握MATLAB程序设计方法,通过查找资料(充分利用图书馆资料),提高了我们分析查找程序代码的中所出现的问题的能力。
在设计的过程中,需要组员讨论分析和解决所出现的问题,这都是对我们个人能力的考核和对团队协作能力的磨砺。
通过这次设计,无论是个人能力,还是团队协作能力,都有了很大的提升
参考文献:
1.数字图像处理及MATLAB实现主编:
杨杰副主编:
黄朝兵(电子工业出版社)
2.MATLAB图像/视频处理应用及实例主编:
杨高波杜青松(电子工业出版社)
3.数字图像处理与分析主编:
扬帆等(北京航空航天大学出版社)
4.数字图像处理主编:
蔡利梅王利娟(中国矿业大学出版社)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 数字图像 处理 杂草 识别