一种基于图像处理的作物种子计数方法与流程

文档序号:12365857阅读:1236来源:国知局
一种基于图像处理的作物种子计数方法与流程

本发明涉及计算机图像处理技术领域,具体涉及一种作物种子的计数方法。



背景技术:

为了进行种子质量检验、测量产量、考种等科研实验,数粒是不可或缺的步骤,而且数粒的精度对实验结果有着极大的影响。育种是通过创造遗传变异、改良遗传特性以达到培育出优良动植物新品种的技术,对种植业和畜牧业的发展具有非常重要的意义,而计数是育种的一个重要环节。国内在把数字图像技术用于育种方面起步较晚,近些年,中国农业发展的重要性越来越突出,其中育种技术就是农业发展非常重要的一部分,受到很多研究人员的关注与研究,同时在图像分割检测方面取得了一定的研究成果。谷物种子研究主要在于品质检测和计数,大多研究集中在对粘连谷物种子进行分割,其中距离变换和分水岭相结合的方法更是常见;其他方法包括基于椭圆曲线拟合的分割,基于利用籽粒轮廓曲率的分割等等。至今,科研人员提出的图像分割算法可分为边缘检测、门限化、像素分类和综合使用的人工神经网络、模糊集论等类型。当前对谷物计数的研究基本集中在保留谷物原有外形的谷物分割,但是分割效果差强人意,计数对环境和图片要求较高等,而且速度也相对较慢;因而其方便性,准确性,快捷性都有待提高。目前,人工计数的方式还是十分普遍,优点是实时性高,工具要求低等,而缺点是效率低、容易出错,而且劳动力大、容易造成视觉疲劳。也有少数的机电一体化数粒设备,可以代替人工计数,但是存在着误差大、制造复杂、价格昂贵等问题,难以广泛地推广应用。综上所述, 为了解决上述现有技术的不足,提供一种便捷准确的谷物种子计数方法,本发明在图像处理技术的基础上提供一种基于图像处理的作物种子计数方法,经过对有育种价值的5种谷物种子做了应用研究,证明此方法能够准确快速地统计出种子数量,结构简单,操作简便,适用于多种作物种子。



技术实现要素:

(一)要解决的技术问题

本发明的主要目的在于提供一种基于图像处理的作物种子计数方法,克服了图像分割速度慢,准确度低的问题,同时克服了传统人工计数效率低、容易出错、劳动力大以及机电一体化数粒设备存在的误差大、制造复杂、价格昂贵等问题,将图像处理技术更好应用于育种领域,达到了快捷准确的给种子计数,为育种计数提供了有力的技术支持。

(二)技术方案

本发明是通过以下技术方案实现的,包括步骤:

S1、获取种子图像,记录为图bmp1;

S2、图像预处理,获取图bmp1,对图像进行灰度化,平滑滤波、二值化、Canny方法增强二值图边界信息等,预处理结果记录于图bmp2;

S3、图像分类,获取图bmp2,对图像进行分类,先利用腐蚀将弱粘连的种子分离,再利用面积特征将种子连通域分成两类,第一类是一个连通域中只包含一个种子的连通域类,将此类记录于图dstBmp中;第二类是一个连通域中包含多个种子的连通域类,将此类记录于图bmp3中;

S4、根据凹点切割,获取图bmp3,检测连通域的凹点特征和面积特征,利用这两个特征对种子连通域进行循环切割,切割结果记录于图bmp4;

S5、类合并,即将两类图像合并,获取S4处理的结果bmp4,对此图 进行腐蚀和去小连通域操作;再获取步骤S3处理的结果图dstBmp,将bmp4和dstBmp相加,并将相加结果保存于图bmp5中。

S6、计数显示,获取图bmp5,查找图中连通域的个数和位置,并显示查看。

优先的所述步骤S2包括:

S2.1、取得S1处理结果图bmp1,对其进行灰度化处理,再利用双边滤波和中值滤波进行平滑处理,结果记录于图img21;

S2.2、获取S2.1处理后的图img21,利用最大类间方差法对其进行二值化,结果图记录为img22;

S2.3、获取S2.1处理后的图img21,利用canny方法找出其边缘信息,并记录于图img23;

S2.4、获取S2.2处理后的二值图img22和S2.3处理后的结果图img23,接着用img22减去img23,以此增强二值图像的边缘信息,增强边缘特征的二值图记录于图bmp2,并将其传递给下一步S3。

优先的,所述步骤S3包括:

S3.1、获取S2处理后的图bmp2,利用腐蚀方法将图中弱粘连的种子连通域分离,其结果记录于图img31;

S3.2、获取S3.1处理后的图img31,检测连通域的面积特征,并记录下面积特征;

S3.3、获取S3.1处理后的图img31和S3.2处理后面积特征,利用面积特征将种子连通域分成两类,第一类是一个连通域中只包含一个种子的连通域类,将此类记录于图dstBmp中;第二类是一个连通域中包含多个种子的连通域类,将此类记录于图bmp3中;

S3.4、步骤S3.1、S3.2、S3.3循环执行三次。

优先的,所述步骤S4包括:

S4.1、检测面积特征,获取S3处理结果图bmp3,计数出其第i个连通域的面积area[i];获取S3处理的结果图dstBmp,计数其单个种子的平均面积averarea;

S4.2、检测凹点特征,获取S3处理结果图bmp3,利用凸缺陷的方法检测其凹点特征,包括凹点位置,凹点个数,凹点深度;

S4.3、获取S3处理结果图bmp3,根据面积特征判断图中第i个连通域包含的种子个数,即:

1、若若0<area[i]≤(3×averarea/2),则判断第i个连通域中只包含1个种子,则不进行切割;

2、若(3×averarea/2)<area[i]≤(5×averarea/2),则判断第i个连通域中包含2个种子,根据凹点进行一次切割;

3、若(5×averarea/2)<area[i],则判断第i个连通域中包含多个种子,根据凹点进行一次切割;

S4.4、重复步骤S4.1、S4.2、S4.3,结束条件是切割次数达到5次或者不再有连通域中包含两个以上种子数。切割后的图像记录于图bmp4;

优先的,所述步骤S5包括:

S5.1获取S4处理结果图bmp4,对其进行腐蚀2次,去除切割后留下的小噪点,其结果记录于图img51;

S5.2获取S5.1处理结果图img51,利用面积特征去除其小连通域,即若有连通域的面积值小于1/3倍的平均值,则认为是应该去除的小连通域,结果记录于图img52;

S5.3获取S3处理结果图dstBmp,获取S5.2处理结果图img52,将dstBmp和img52相加,相加就得到了全部种子的分离结果,结果图记录 于图bmp5。

优先的,所述步骤S6包括:

获取S5处理结果图bmp5,找出图像中每个连通域的最小外接矩形,并把外接矩形的中心作为种子的中心,外接矩形个数作为种子个数,最后显示结果。

(三)有益效果

本发明是一种基于图像处理的作物种子计数方法,其有益效果如下:

(1)本发明将数字图像处理技术应用于育种领域的种子计数,取代人工计数和机械计数的方式,节省了人力成本和设备成本,大幅度地提高工作效率;

(2)本发明克服了图像分割应用于种子计数时的处理速度慢,准确度低等缺点,达到了速度快,准确度高,稳定性强,可重复批量处理等优点;

(3)本发明算法是用C/C++语言结合opencv开发,具有很强的可移植性,现在已经在Android平板电脑中得以应用,平板计数时拍照方便,Android的图像界面也方便人机交互,方便查看计数效果,并可人为修正,确保了计数的准确性。

(4)本发明简单、易操作、数粒精确高效,解决了成本高、维修困难等问题,并在多种作物种子(如玉米、绿豆、小麦、芝麻、水稻等)得到了应用和验证。

具体实施方式

下面结合附图和具体实施方式,对发明的具体实施方式做进一步描述。参见图1,可见本发明的用到的方法和各个方法的分块连结,在图像处理模块中主要用到方法有平滑滤波法,最大类间方差法,Canny法等等; 图像分类模块中主要运用了面积特征检测和形态学方法等,根据凹点切割模块中,主要是根据凹点特征和面积特征对种子连通域进行切割等等,最后的类合并模块中主要运行了形态学和面积特征去除噪点。本发明的处理流程见图2,主要有六部分,主要有种子图像的获取,图像预处理,图像分类,根据凹点切割,两类图像合并,计数显示;下面对其进行详细描述。

(一)获取种子图像

获取种子图像为模块S1,获取的图像记录为bmp1。

获取图像有一下条件限制:

参见图3的android上的应用界面图,本发明已在平板电脑上进行了应用,图像可以用平板电脑相机进行获取,图像背景要为白色;取图时,需加背光板,种子需平铺,不能重叠,可粘连,数量在50-1500之间最佳,相机要正立,照片要清晰,像素为800万最佳,相机与接料盘距离在20cm-30cm之间。

(二)图像预处理

图像预处理为模块S2,获取S1的结果图bmp1,对图像进行灰度化,平滑滤波、Canny方法增强二值图边界信息等,预处理结果图记录于图bmp2,其参加图6。

图像预处理的详细步骤如下:

S2.1、取得S1处理结果图bmp1,对其进行灰度化处理,在利用双边滤波和中值滤波进行平滑处理,处理结果图记录为img21;

1、灰度化即是把彩色图像的R、G、B通道亮度值转化为单通道亮度值表征每个像素点构成的图像,转化公式为:

Gray(x,y)=0.299*R(x,y)+0.587*G(x,y)+0.114*B(x,y) (1)

2、平滑滤波主要用到中值滤波和双边滤波;中值滤波器将中心像素 的正方形领域内的每个像素值用中间像素值替换,而且对镜头噪声有很好的处理效果;双边滤波可以很好的保留图像的边缘信号,所以这两种滤波能在保留边缘信号的前提下很好的进行滤波去噪,滤波器的滤波窗口大小均为3×3;

S2.2、获取S2.1处理后的图img21,利用最大类间方差法对图像进行二值化,结果图记录为img22,其参见图4。

此处,使用的是全局二值化方法,即最大类间方差法,但其需要保证种子在图中占有一定的数量,种子个数在50-1500个最佳。

S2.3、获取S2.1处理后的图img21,利用canny方法找出其边缘信息,并记录于图img23,其参见图5;

灰度图像二值化后得到的二值图中种子的边缘信息会丢失一部分,canny方法对边界很敏感,可以很好的找出灰度图像中的边界信息,刚好可以用于弥补图像二值化时丢失的边界信息。

S2.4、获取S2.2处理后的二值图img22,获取S2.3结果图img23,接着用img22减去img23,以此增强二值图像的边缘信息,处理结果记录于图bmp2。

可见二值化时并不能很好的保存边界信息,而canny能很好的找出边界,经过增强二值图边界处理,就可以得到有很好边界特征的二值图。

(三)图像分类

图像分类为模块S3,获取S2处理的结果图bmp2,先利用腐蚀方法将弱粘连的种子分离,再利用面积特征将种子连通域分成两类,第一类是一个连通域中只包含一个种子的连通域类,将此类记录于图dstBmp中,其参见图7;第二类是一个连通域中包含多个种子的连通域类,将此类记录于图bmp3中,其参见图8;

图像分类的详细步骤如下:

S3.1、获取S2处理后的图bmp2,利用腐蚀方法将图中弱粘连的种子连通域分离,其结果记录于图img31;腐蚀次数根据种子的大小不同而不同,这里使用的是稻谷种子,腐蚀次数为4次,腐蚀内核是3*3;

S3.2、获取S3.1处理后的图img31,对其腐蚀2次,结果记录于图img32;

腐蚀目的是将图中弱粘连的种子连通域分离,腐蚀内核是3*3,此步将用于循环分类当中;

S3.3、获取S3.1处理后的图img31,检测连通域的面积特征,并记录将面积特征;

记录下第i个连通域的面积是area[i],同时计数其平均面积averarea,连通域个数n,平均面积为:

<mrow> <mi>averarea</mi> <mo>=</mo> <mrow> <mo>(</mo> <munderover> <mi>&Sigma;</mi> <mn>1</mn> <mi>n</mi> </munderover> <mi>area</mi> <mo>[</mo> <mi>i</mi> <mo>]</mo> <mo>)</mo> </mrow> <mo>/</mo> <mi>n</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

S3.4、获取S3.2处理后的图img32和S3.3处理后的面积特征,利用面积特征将种子连通域分成两类,第一类是一个连通域中只包含一个种子的连通域类,将此类记录于图dstBmp中;第二类是一个连通域中包含多个种子的连通域类,将此类记录于图bmp3中;

有如下步骤:

1、获取S3.2处理后的图img32,判断第i个连通域包含种子个数,判断方法是根据获取S3.1处理后的面积特征进行判断的;

2、若0<area[i]<(3×averarea/2),判断第i个连通域中包含1个种子,则将此类连通域记录于图dstBmp中;

3、若(3×averarea/2)<area[i],判断第i个连通域中包含多个种子,将此类记录于图bmp3中;

S3.5、步骤S3.2、S3.3、S3.4、S3.5循环执行三次。

循环执行次数根据种子连通域的大小不同而不同,这里使用的是水稻种子,800万像素的照片,其循环三次即可。

(四)根据凹点切割

根据凹点切割是模块S4,获取S3处理结果图bmp3,检测连通域的凹点特征和面积特征,利用这两个特征对种子连通域进行循环切割,切割结果图为bmp4,其参见图9。

根据凹点切割的详细步骤如下:

S4.1、检测面积特征,获取S3处理结果图bmp3,查找出其第i个连通域的面积area[i];获取S3处理结果图dstBmp,计数其单个种子的平均面积averarea,其计数方式参见公式(2);其中连通域的面积指的是连通域中包含的像素个数。

S4.2、检测凹点特征,利用凸缺陷方法检测凹点特征,包括凹点位置,凹点个数,凹点深度等;

S4.3、获取S3处理结果图bmp3,根据面积特征判断图中第i个连通域包含的种子个数,即:

1、若0<area[i]≤(3×averarea/2),则判断第i个连通域中只包含1个种子,则不进行切割;

这里是循环切割的,当单个种子被切割出来时,就不需要再切割,即满足以上条件的种子连通域不在被切割。

2、若(3×averarea/2)<area[i]≤(5×averarea/2),则判断第i个连通域中包含2个种子,根据凹点进行一次切割;

满足以上条件的连通域被视为一个连通域中包含两个种子,需要进行 一次切割,主要的切割方法是连接最深的两个凹点进行切割;

3、若(5×averarea/2)<area[i],则判断第i个连通域中包含多个种子,根据凹点进行一次切割;

满足以上条件的连通域被视为一个连通域中包含多个种子,对此连通域只进行一次切割,余下没有切开的部分将会进入循环切割,主要的切割方法是当凹点的深度满足大于15个像素点,找出满足条件中的最近的两个凹点,连结这两个凹点,以此进行切割。

S4.4、重复步骤S4.1、S4.2、S4.3,结束条件是切割次数达到5次或者是不再有连通域中包含两个及以上种子数。切割后的图像记录于图bmp4。

(五)类合并

类合并为模块S5,即将两类图像合并,获取S4处理的结果bmp4,对此图进行腐蚀和去小连通域操作;再获取S3的处理的结果图dstBmp,将bmp4和dstBmp相加,并将相加结果保存于图bmp5中,其合并结果参见图10。

类合并的详细步骤如下:

S5.1获取S4处理结果图bmp4,对其进行腐蚀2次,去除切割后留下的小噪点,其结果记录于图img51;

在根据凹点切割之后,图像中会遗留下一些过切割导致的椒盐噪点,所以这里利用腐蚀的方法进行小噪点去除,腐蚀方法内核是3×3。

S5.2获取S5.1处理结果图img51,利用面积特征去除其小连通域,即若有连通域的面积小于1/3倍的平均面积时,则认为是应该去除的小连通域,去除结果记录于图img52;执行步骤如下:

1、计算图中第i个连通域的面积特征是area[i],同时计数其平均面积averarea,计数方法见公式(2);

2、若area[i]<(averarea/3),则认为第i个连通域是噪点,将其去除;

S5.3获取S3处理结果图dstBmp,以及获取S5.2处理结果图img52,将dstBmp和img52相加,相加就得到了全部种子的分离结果,结果图记录于图bmp5。

(六)计数显示

计数显示为模块S6,获取S5处理结果图bmp5,找出图像中每个连通域的最小外接矩形,并把外接矩形的中心作为种子的中心,外接矩形个数作为种子个数,最后显示结果,显示结果见图11。

附图说明

图1 功能模块图

说明:图中展示了每个模块中用到的主要方法和技术,以及每个模块之间的结合顺序;

图2 处理流程图

说明:图中展示了各个图像的处理流程和各个方法的处理结构和先后;

图3 android界面图

说明:本发明方法应用在Android平板上的计数效果图,Android中的用户交互界面,可以方便的查看种子计数的效果;

图4 二值化结果图

说明:图中展示了平滑后直接全局二值化的结果图;

图5 Canny提取的边缘特征图

说明:图中展示了利用Canny法对种子灰度图进行边缘信息查找的结果。

图6 加强边缘特征的二值图

说明:图中展示了将二值图经过Canny方法加强边缘信息的结果图,即是图4减去图5的结果。

图7 单个种子图

说明:图中展示了一个连通域中只包含一个种子的连通域类,即单个种子结果图。

图8 粘连种子图

说明:图中展示了一个连通域中包含多个种子的连通域类,即粘连种子图。

图9 根据凹点切割的结果图

说明:图中展示了根据凹点切割的结果图,可见有过切割遗留下的小连通域,其需要去除。

图10 合并结果图

说明:此图展示了各个种子都被分离的结果,是切割完成的结果图。

图11 计数显示图

说明:图中展示了计数效果,先对切割结果图进行连通域查找,最后将查找结果和原图一起显示的效果。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1