基于数字图像处理的杂草识别

基于数字图像处理的杂草识别

1. 主题介绍

杂草与大田作物争夺阳光和养分,严重影响作物生长。为了达到除草的目的,人们开始喷洒大量的除草剂来控制除草。然而,它忽视了除草剂使用不当对人、牲畜和环境造成的危害。从实际应用出发,设计了一种基于数字图像处理的杂草图像特征提取与识别设计方案。在参考以往研究成果的基础上,不断改进算法,找出适用于MATLAB杂草识别的可行方法。本文研究了杂草图像的处理和识别方法。采集到的图像往往存在模糊现象,对模糊图像的恢复处理进行了大量的研究实验,得出的结论是维纳滤波具有良好的恢复效果。在绿色植物与土壤背景的分割实验中,提出了一种基于彩色图像的二元方法,该方法无需彩色图像灰度即可直接将绿色植物与土壤背景分离,处理速度更快,分割效果好,实时性比以前的分割方法更令人满意。杂草和作物的分割主要研究行间杂草和作物的分割,参考国内外数据,进行研究实验,表明使用位置特征识别方法具有良好的分割效果,采用简单快速的像素位置直方图方法查找作物的中心行, 采用区域增长,与其他方式相比减少重复操作,节省时间,满足实时处理的要求;分割图像是仅包含杂草的二值图像,通常带有一些残留的叶子和颗粒噪声,通过形态过滤或中值过滤将其去除。

二、题目意义

杂草是生态系统的一员,并且

农田杂草是农业生态系统不可分割的一部分,直接或间接影响农业生产,给经济作物带来巨大危害。杂草不仅与作物争夺阳光,水,肥料,而且与作物争夺生存空间,如果不及时处理,它们会阻碍作物生长,导致作物产量下降,产品质量受损,甚至阻碍作物收成,增加生产成本[1]。据统计,目前全世界杂草近5万种,农田杂草8000多种,主要粮食作物受到危害约250种。据中国农业植保站近年来的调查显示,我国农田中约有1500种杂草,其中对农作物造成严重危害的杂草17种;主要杂草31种,危害范围广,严重损害;有24种区域杂草;有183种小杂草通常不会对作物造成严重伤害[2]。为了减少草害,人们投入了大量的人力物力。统计数据显示,美国 64 种作物的杂草每年花费 75 亿美元,而化学除草每年花费 36 亿美元,机械和其他杂草花费 26 亿美元[3]。中国用于除草的劳动力量高达20亿至30亿个工作日,即便如此,中国草害造成的平均粮食损失为13.4%,每年粮食生产损失约为17500kt[4]。为了减少杂草对作物的危害和造成的经济损失,常用的几种除草方法有机械除草、化学除草、人工除草、静态除草、生物除草等。

由于浪费人力和效率低下,现在很少使用人工除草;虽然机械除草效率高,环境污染小,但耗电量大,导致土壤压实,不利于茬作物的生长;静电除草可以清除一些杂草,但可能造成作物灼伤,甚至影响土壤结构,降低土壤生产力;生物除草是从分子生物学的角度进行的研究,利用动物、昆虫、细菌等方法控制一些杂草,但尚未真正应用于生产。目前,应用最广泛的除草方法是化学除草,化学除草是利用化学农药(除草剂)来控制杂草,其主要特点是高效、省力,特别是能省去繁重的田间除草劳动,解放田间劳动,是因为化学除草具有其他除草方法所不具备的优点而被广泛应用。然而,人们在大量使用除草剂防治草害虫的同时,也会产生许多不良影响,如污染农副产品、破坏生态平衡等。化学除草的负面影响导致人们深刻认识到仅依靠化学控制和大量“地毯”喷洒除草剂的错误做法[5]。因此,认为应该采取一些有利的措施,既能有效消除草害,提高粮食作物产量,又能保护人们的生活环境,达到可持续发展的目的,这使得科学家研究除草的新方法不可避免。

针对这种情况,我们通过研究,利用图像处理技术对杂草进行识别,确定杂草的位置和类别,从而为农田精准喷洒除草剂的自动化提供理论和技术支撑。

三、杂草鉴定的研究方法主要方法有:颜色特征分析法、形状特征分析法、纹理特征分析法

、光谱分析法、位置特征分析法和区域生长法。

1.颜色特征分析方法

颜色表征是杂草鉴定的重要方法。在自然界中,植物呈绿色,土壤呈黄褐色,岩石和无生命的植物残留物呈淡黄色。根据植物的颜色特征和背景,植物可以与复杂的土壤背景分开。一些杂草的茎是棕色的,可以通过杂草和作物的颜色差异来区分。

2. 形状特征分析方法

形状特征分析方法使用植物叶子形状的差异来识别它们。为了根据这些基本形状特征(包括面积、周长、长度和宽度)来识别杂草种类,他们研究了3种草种(管状大麻、狐尾和碗花)和大豆幼苗在子叶生育期的形状。这种方法不受子叶大小和取向的影响,但在叶片形状复杂、叶片数量较多时无能为力。

3. 纹理特征分析方法

纹理由许多小单元组成,整体上可以反映一定的规律性,其灰度分布表现出一定的周期性。如果你仔细观察,你会发现植物的叶子有不同的质地。因此,叶子表面的纹理信息可用于识别作物和杂草。用于特征提取的纹理特征有:共生矩阵、方向行灰度能量、方向滤波遮罩和分形维数、局部极值等。

4. 光谱分析的识别方法光谱分析

方法是根据物体的不同反射特性,分析杂草、作物和土壤背景的不同反射光谱,以达到识别杂草的目的。在植物的生长过程中,由于植物的叶面组织结构不同,一定波长的太阳光的吸收和反射也不同,因此这一特性可用于区分杂草、作物和土壤背景。

5. 位置分布特征法

位置分布特征法是一种基于作物常规种植对作物和行间杂草进行快速识别的方法。该方法可以计算出田间杂草分布密度,对条纹作物除草具有广泛的研究意义和价值。H.J. Olsen曾经使用纵向灰度值统计的方法提取作物行信息以用于识别目的。

6. 区域增长法区域

增长是指将像素组或区域发展成更大区域的过程。从种子点的集合开始,从这些点增长的区域是通过与每个种子点具有相似属性(如强度、灰度、纹理颜色等)的相邻像素合并到该区域来实现的。

4、课题研究的主要内容:

本项目在总结以往研究人员研究成果的基础上,结合已有的杂草识别理论和方法,研究基于MATLAB数字图像处理的实时杂草处理与识别方法,并在MATLAB平台上进行图像采集、处理和识别测试。通过不同方法的对比实验,提高了处理和识别速度,为农田机器视觉识别杂草提供了良好的理论依据。

研究如下:

图像采集;杂草分离与背景的研究设计。分析彩色特征,然后根据颜色特征将彩色图像转换为灰度图像;然后,利用阈值分割中的迭代运算进行分离实验。作物与杂草分离的研究设计。利用作物间杂草分布多的特点,采用区域生长法对作物和杂草进行分离。得到的图像有明显的杂质,首先对图像进行二值化,然后通过形态学滤波滤除杂质,得到结果。

5、运行效果图

v2-140bb576001057b46fa9a34f87282712_b.jpg/

v2-358d4c4d5a52fb6f2c3b6e835c4ac468_b.jpg/

v2-cf153d096540583d0e3c9f45b9b0b88d_b.jpg/

v2-66685afe04b3d0a665df895bda194739_b.jpg/

6. 参考代码

灰度和阈值分割

Cao=double(imread(’li.jpg’)); % 读取图像r=Cao(:,:,1); g=Cao(:,:,

2); b=Cao(:,:,3); % 分析颜色特征

Caogray=(2*g-r-b);% 根据颜色特征将彩色图像转换为灰度%

Caogray=g; % 查找图像大小

[x,y]=大小(Caogray);

I=双(曹灰);

SII=I;

当 i=1:x% 时,实际图像灰度为 0-255

对于 j=1:y

if(I(i,j)>180)

I(i,j)=255;

结束

if(I(i,j)

I(i,j)=0;

结束

结束

结束

z0=max(max(Caogray)); % 查找图像的最大灰度级别

z1=min(min(Caogray)); % 查找图像的最小灰度级别

T=(z0+z1)/2;

TT=0;

S0=0; n0=0;

S1=0; n1=0;

允许=0.2; %新旧阈值接近

d=abs(T-TT);

计数=0;% 记录计数周期

while(d>=allow)%迭代阈值最优分割算法计数

=计数+1;

对于 i=1:x

对于 j=1:y

if(Caogray(i,j)>=T)

S0=S0+Caogray(i,j);

n0=n0+1;

结束

if(Caogray(i,j)

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);

对于 i=1:x

对于 j=1:y

if(Caogray(i,j)>=T)

Seg(i,j)=1; % 阈值分割图像

结束

结束

结束

对于 i=1:x

对于 j=1:y

if(SI(i,j)==0)

SII(i,j)=1;

结束

if(SI(i,j)==1)

SII(i,j)=0;

结束

结束

结束

SI=1-Seg; 图,显示(SII);

划分杂草和作物的区域生长方法

A0=imread(’图片2.png’); % 读取图像

种子=[1,2]; % 选择起始位置

thresh=31; % 相似性选择阈值A

=rgb2灰度(A0); % 灰度A=imadjust(A,[min(min(double(A)))/255,max(

max(double(A)))/255],[]);

A=双精度(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; % 循环判断标志

M=zeros(r,c); % 构建与原始图像大小相同的矩阵M(seed(

1),seed(2))=1; % 将起点分配给 1,其余点分配给 0

计数 = 1;% 计数器

而顶部~=0%循环结束条件

r1=q(1,1); % 起始线位置

c1=q(1,2); % 起始点列位置

p=A(r1,c1); % 起始点灰度值

dge=0;

对于 i=-1:周围点循环判断的 1%

对于 j=-1:1

如果 R1+I0 和 C1+J0% 保证在该点周围的范围内

如果 abs(A(r1+i,c1+j)-p)=n% 如果满足决策条件的点数大于或等于 n

顶部=1;

结束

q=q(2:top,:);

top=top-1;

结束

子图(121),显示(B,[]);

二值化和形态过滤

Image1=im2double(imread(’li3.png’));

T=灰粒(图1);

BW=im2bw(Image1,T);

图,IMSHOW(BW),标题(“二值化图像”);

SE=strel(’square’,3);

Morph=imopen(BW,SE);

Morph=imclose(Morph,SE);

图,显示(形态),标题(“形态过滤器”);