赵欣,贾晓剑
一种基于Matlab的谷物颗粒计数方法
赵欣,贾晓剑
(河南科技学院信息工程学院,河南新乡453003)
针对目前谷物颗粒计数方法存在的不足,提出了一种新的基于Matlab的谷物颗粒计数方法,利用原有最终腐蚀算法,先计算出没有重叠区域的颗粒数,然后选用面积Ai作为区域特征参数,对最终腐蚀之后面积依然大于Ai+4的部分进行区域分割,并对分割以后的区域进行计数,两次计数结果相加得到图像整体区域内的颗粒数.在Matlab 7.0环境下,通过实验验证了方法的准确性.方法克服了常用算法中因颗粒大片粘连造成的统计不准确的缺陷,为今后进一步的研究提供了实践和理论支持.
颗粒计数;粘连;图像处理
随着农业信息化进程的不断推进,以机器视觉为主的信息化技术在现代农业中发挥着越来越重要的作用.谷物作为主要的粮食作物,它的产量和质量直接影响到国计民生,在对作物产量评估的过程中,谷物颗粒的计数起到非常重要的作用.传统的计数方法多少都存在着不足.针对这一问题,本文提出一种新的基于图像处理技术的谷物颗粒计数方法,为后续的谷物产量评估、精选、优质育种等进一步的研究提供支持.
1.1 谷物图像获取
目前常用的图像获取设备有手机、摄像机、计算机、视频图像采集卡等,本文使用手机采集图片.手机拍摄操作简单方便,采集到的图片清晰度能够满足实验要求[1].
1.2 谷物图像处理
图像获取设备获得的图像为JPG格式,可以用Matlab中的imread函数读入图像.由于计数的准确性受到图片的清晰度、背景的颜色、颗粒的粘连与重叠情况等条件的影响,所以在计数之前需要对采集到的图片进行相应的处理.本文的计数实验假设谷物颗粒颜色和背景颜色存在较大的差别.
1.2.1 图像灰度化处理 用手机采集到的图像是RGB彩色图像,不仅包含强度信息,还有大量的颜色信息.直接处理彩色图像会降低系统的执行速度,因此需要将输入的彩色图像转换为灰度图像.
彩色图像灰度化的方法主要有最大值法、平均值法、加权平均值法等.本文采用加权平均值法进行灰度处理.
加权平均值法处理图像的步骤如下:①读取彩色图像的灰度值,即读取图像中每个像素的R、G、B分量值;②采用加权平均值法算出该像素的灰度值Gray;③对图像中的所有像素进行上述操作,彩色图像最终转换成为灰度图像.其中步骤②中用到的加权平均值计算公式为
式(1)中:KR、KG、KB分别代表 RGB彩色图像中 R、G、B 的权值,经试验证明 KR取 0.30,KG取 0.59,KB取0.11.本文以绿豆颗粒为例进行试验,灰度化后的图像如图1所示.
图1 彩色图像灰度化Fig.1 Color image grayprocessing
1.2.2 灰度图像二值化 图像二值化是利用图像中目标物与其背景在灰度特性上的差异,把图像视为具有不同灰度级别的目标和背景区域的组合,能够方便提取图像中的有用信息,删减掉一些无用信息.阈值是灰度图像二值化过程中的重要参数,它决定着二值化效果的好坏.局部阈值法是图像二值化经常选用的方法,它是把图像分成很多小块图像,并对每个子图像选取相应的阈值,当每个子图像都被局部阈值法处理过后就能组成一整幅图像.在Matlab中局部阈值函数为dithe,二值化函数为im2bw.二值化以后的图像像素只有0和1两个值,分别代表背景和目标谷物[2].
1.2.3 图像平滑滤波 图像在采集、传输和量化过程中会受到外部环境、采集设备等因素影响,这些因素以噪声的形式在图像上表现出来,严重影响着图像的质量,因此需要进行去噪处理.图像平滑是一种局部项处理的噪声抑制方法,根据噪声的特点,可以选择不同的平滑算法.本文选择中值滤波法,此方法能很好地抑制点状噪声,并能很好地保持图像边缘的完整性.
中值滤波的原理是:先确定数字图像或数字序列中的一点,然后找出该点的一个邻域,用邻域中各点的中值来代替该点,并且使周围的像素值接近真实值,从而消除孤立的噪声点.具体算法的实现通常是用一个窗口在图像上滑动,将窗口内包含的图像像素按灰度排序,取其中间值作为窗口中心像素的灰度,用公式(2)表示[3]
式(2)中,选方形或是圆形窗口是根据图像中物体的形状特性来确定的.Matlab中用medfilt2(n)函数来实现中值滤波.二值化和平滑后的图像如图2所示.
图2 图像二值化与中值滤波Fig.2 Image binarization and median filter
对图像做简单处理之后就需要进行颗粒计数.一般来说,若图像在背景清晰、光照适宜、谷物颗粒间没有遮挡和粘连的情况下拍摄,常用的计数方法能很准确地计算出颗粒数.但实际的拍摄往往受到外界环境的影响,并且大多数情况都会出现颗粒部分或者大片粘连,从而导致计数结果不准确.为了克服大片粘连带来的影响,提出了一种新的谷物颗粒计数方法.
2.1 形态学闭运算和最终腐蚀
2.1.1 形态学闭运算 针对图2中颗粒大片粘连的情况,先选用形态学图像处理中的闭运算对图片作第一步处理[5-6].所谓的闭运算是指:先对二值化后的图像进行膨胀处理然后再腐蚀.先膨胀可以填平颗粒上的小孔使颗粒及颗粒边缘变得平滑,然后再做腐蚀运算将物体分开.这样可以保持颗粒的总位置和形状不发生变化.闭运算的结果如图3所示.
图3 图像闭运算Fig.3 Image closingoperation
由图3可以看出,经过闭运算处理之后图像变的更加清晰,颗粒的位置和形状没有发生变化,粘连较轻的颗粒已经分开了,但是大片粘连的颗粒仍然没有被分开,需要做进一步的处理.
2.1.2 最终腐蚀计数 腐蚀技术能够使粘连的颗粒分离开,为了提高计数的准确性,对粘连的情况采用最终腐蚀的方法进行计数.需要指出的是,在做最终腐蚀之前需要对粘连严重的区域进行标记,先不对这部分计数,后续再做处理.
所谓最终腐蚀就是把图像连续腐蚀到连通子区域消失前所有剩余部分[7].具体步骤是:
(1)标记原图像的通区域;
(2)对标记后的图像进行连续腐蚀,每腐蚀一次,重新标记连通区域;
(3)腐蚀程序每次运行都会自动检查腐蚀后的图像,看其是否有消失的区域,如果有消失,程序就会自动把最后一次消失的区域恢复成最后一次的形态;
(4)直到下次腐蚀和这次腐蚀结果一样,程序结束.
最终腐蚀图及计数结果如图4所示.
图4 绿豆图像最终腐蚀图及计数结果Fig.4 Finallycorrosion picture and results ofthe mungbean image
从最终腐蚀结果和计数结果可以看出,目标范围内依然有不少颗粒粘连在一起,致使最后计算出的颗粒数为86粒,与实际98粒颗粒数出入较大,计数准确率较低.为了解决最终腐蚀算法中粘连致使计数不准确的问题,利用面积区域分割方法对原算法进行改进.
2.2 大片粘连区域计数
对大片粘连区域,选用面积作为描述区域特征的参数[8].所谓的面积特征是指:若给定封闭边界的某种表示,则相应连通区域的面积应为区域外边界包围的面积与内边界包围的面积(孔的面积)之差.对于某个图像区域Ri,其面积Ai就是统计Ri中边界内部(包括边界)的像素点的灰度级之和,计算公式如下:
对于一幅二值图像,若用1表示目标,用0表示背景,其面积就是统计的个数.由于所要计数的谷物颗粒大小基本确定,面积也基本不变,所以这里选用面积作为特征参数对谷物颗粒进行特征提取.对于大片粘连在一起的区域,其面积一定大于单个颗粒面积,若把单个颗粒面积Ai做为模板,用Ai检测粘连部分的面积Ki,则Ki一定大于Ai,此时对Ki做一次分割,然后对分割后的区域再做检测,如果Ki依然大于Ai,则继续分割,直到Ai-4≤Ki≤Ai+4停止分割,在分割过程中标记分割后满足条件的区域,当分割停止后对标记区域计数,进而统计出部分粘连区域的颗粒数.
经过最终腐蚀计数和面积区域分割计数,颗粒数即为两次计数的和.在Win7环境下,用Matlab 7.0软件对整体程序进行调试,最终实现了准确的颗粒计数.见图5.
图5 新算法的计数结果Fig.5 Count results ofthe newalgorithm
为了验证算法的准确性,又用黄豆、瓜子以及小麦各50粒分别进行实验,实验过程中部分颗粒之间存在粘连情况,且满足要验证的颗粒颜色和背景颜色存在较大差异.实验结果见表1.
表1 原算法与改进算法实验结果Tab.1 The original algorithmis compared with the experimental results ofthe improved algorithm
由表1可以看出,利用改进算法得到的黄豆和瓜子数不存在误差,但是小麦数却存在一定误差,这是因为相对于其他两种作物,小麦种子颗粒较小,在区域面积计算时面积Ai扩展区域的阈值选取需要更加精确,经过反复设定最终确定选取Ai-3≤Ki≤Ai+3作为阈值范围,虽然存在一定误差,但是基本能准确计数.
实验证明利用改进后的算法对于大片粘连情况下的计数的有效性和准确性.
本文通过面积区域分割计数对最终腐蚀计数进行改进,改进后的方法能够很好地解决大片粘连带来的颗粒计数不准确问题,但是对于颗粒完全重叠和重叠度较高的情况处理效果并不很理想,有待后续研究.
[1]陆爱民,何晓燕,刘南渤,等.机器视觉成像系统的平行光源装置及机器视觉成像系统:CN105841018A[P].2016-08-10.
[2]刘星桥,李娟,张如通.Matlab图像处理在水产养殖中的应用[J].微计算机信息,2006,11(3):300-302.
[3]董长虹,赖志国,余啸海.Matlab图像处理与应用[M].北京:国防工业出版社,2004.
[4]王春哲,李杰.基于边缘信息的图像质量评价研究[J].长春大学学报,2014,24(10):1330-1333.
[5]林德贵.基于边缘检测的提升小波图像去噪[J].长春大学学报,2011,21(8):31-33.
[6]赵欣欣.生物组织显微图像中的细胞计数方法[D].武汉:华中科技大学,2012.
[7]张云鹤,乔晓军,王成,等.种子自动数粒仪[J].仪器仪表与检测技术,2005,24(3):59-61.
[8]刘相滨.类圆性颗粒图像分割技术研究[D].长沙:湖南大学,2006.
A grain particle counting method based on Matlab
ZHAO Xin,JIA Xiaojian
(School ofInformation Engineering,Henan Institute ofScience and Technology,Xinxiang453003,China)
In order to overcome the existing shortage of the present grain particle counting method,A new method of grain particle counting based on Matlab was proposed.The new method calculate the number of particles without overlap use ultimate corrosion algorithm,Then select Aias the regional characteristic parameter,break up the areas which Ai-4≤Ki≤Ai+4,and counting the area after division.The number of particles in the overall area of the image was added by adding two counts.In environment of Matlab 7.0,The accuracy of this method was verified by a large number of experiments.The problem of statistical inaccuracies caused by particle size adhesion in the common algorithm is overcome by this method,it lays a practical and theoretical foundation for further research.
particle counting;adhesion;image processing
TP391.4
A
1008-7516(2017)05-0065-05
10.3969/j.issn.1008-7516.2017.05.012
2017-06-09
河南省科技计划(162102210294)
赵欣(1986—),女,河南南阳人,硕士,助教.主要从事图形图像处理及机器视觉研究.
(责任编辑:卢奇)