秦亮
摘要 针对考种过程中任务繁重、人工计数等存在不足,提出了一种基于Matlab图像识别和处理技术的种子计数方法。该方法处理过程中使用腐蚀运算和开运算用于图像黏连区域的分割,使用二值化,便于数学运算,并在处理后对图像中的种子进行编号和计数,还可以人工校正及存档。该方法可以广泛应用于种子计数工作中。
关键词 数字图像;种子计数;黏连区域分割;Matlab处理
中图分类号 TP391.41 文献标识码 A
文章编号 1007-7731(2023)10-0129-04
数字图像处理是指借助于计算机来处理数字图像,该技术现已广泛用于与成像有关的领域,而且所覆盖的应用领域将来会越来越广[1]。数字图像处理方法具有多种优势:①速度快。相对人工计数,速度很快,计数数量越多,越具有速度优势。②适用性广。在单一的背景中只需要把种子平铺,可以面对各种类型种子,也可以扩展到其他需要计数的物品中。③设备简单。一台照相设备、一台计算机,几个常见的软件即可工作。④记录留存。可对计数图片进行存档,还可以对图片进行人工校正,减少误差。
种子计数是农业育种研究中较为重要的环节,且任务繁重。利用人工计数,计数量较大,长时间、重复性数粒会导致人员疲劳,产生一定的误差。使用仪器设备计数也有一定的局限性,不适于种类繁多、大小不一、形状多变的种子,且仪器设备也比较昂贵。随着科技水平的提高,图像处理技术的广泛运用,图片计数被应用于种子计数工作中。在图片计数过程中,使用灰度处理,减少图像数据量,使用腐蚀运算和开运算用于图像黏连区域的分割;使用二值化,便于数学运算,根据连通图的数量得到种子数量。
1 材料与方法
1.1 试验材料
计算机、拍摄工具、Photoshop软件、Matlab软件、水稻种子(计数对象可根据需要选取),白色A4纸(可根据计数对象颜色选择差异大的单色背景)。
1.2 種子图像采集
取下稻穗上的稻粒,均匀洒落在A4纸上,减少稻粒间大范围黏连。利用拍摄工具获取照片,拍照范围不超出A4纸,背景颜色单一。若拍摄照片数量较多,可以固定拍摄工具,方便图像采集、节约拍摄时间及减少操作误差。
1.3 Photoshop处理
利用Photoshop“选择”项中的“色彩范围”栏提取背景颜色,调节“颜色容差”,并合理利用“魔棒工具”和“选框工具”,删除背景颜色,然后利用“编辑”项中“填充”栏填充黑色作为背景色。
1.4 灰度化处理
图像是由像素点组成的集合。彩色图片的像素点由红、绿、蓝组成,而灰度图片的像素点用颜色深度表示,范围为0~255,白色为255,黑色为0[2]。灰度化处理是通过一定的数学算法把彩色图像转换为灰度图像,目的是使信息量减少更容易处理图像。Matlab中灰度化的函数为rgb2gray。
1.5 腐蚀运算
在腐蚀运算前先定义结构元素。结构元素是形态学变换中的基本元素,是为了探测图像某种结构信息而设计的特定形状和尺寸的图像。结构元素可以定义多种类型,如圆形、方形、线形等[3]。腐蚀运算的思路是结构元素在整幅图像中移动,移动到每一个像素点上,只有结构元素与图像上对应像素点的像素值全部重叠相等时,保留这个像素点值[4]。腐蚀运算的作用是使物体边界向内部收缩,也可以把小于结构元素的物体去除。Matlab中腐蚀运算的函数为imerode。
1.6 开运算
开运算是对目标图像先进行腐蚀运算再进行膨胀运算[5]。开运算的作用是去除背景杂色和图像上的小异物,平滑较大区域的边界,不明显的改变区域的面积,对目标区域细小黏连点处分离等。Matlab中开运算的函数为imopen。
1.7 图像二值化
在灰度化的图像中,先运用算法寻找一个确定的阈值,利用阈值把灰度图像中的像素划分为2值:目标和背景,“1”表示目标,“0”表示背景,图像二值化即将图像上像素点的灰度值转化为“0”和“1”2值[6]。用Photoshop将背景替换为黑色后,阈值易确定,目标和背景易划分,减少了背景杂色对算法的干扰。Matlab中二值化的函数为im2bw。
1.8 代码设计
clc;%清除Command Window区域;
name=imread(‘E:\水稻种子。JPG);%载入“水稻种子。JPG”的图片;
J=rgb2gray(name);%灰度处理;
J1=imadjust(J);%调节灰度图像;
SE1=strel(‘disk,2);%定义结构元素;
SE2=strel(‘disk,4);%定义结构元素;
J2=imerode(J1,SE2);%在灰度化图中进行腐蚀运算;
J3=imopen(J2,SE1);%在灰度化图中进行开运算;
level=graythresh(J3);%在灰度化图中寻找阈值;
J4=im2bw(J3,level);%进行二值化运算;
J5=imerode(J4,SE2);%在二值化图中进行腐蚀运算;
J6=imopen(J5,SE1);%在二值化图中进行开运算;
[L,N]=bwlabel(J6,4);%计算连通数;
figure,imshow(name);%显示图像;
text(0.05,0.1,strcat(‘数量:{,num2str(N),‘}),‘units,‘normalized,‘color,‘r,‘fontsize,20);%显示数量值;
hold on;
for k=1:N;
[r,c]=find(L==k);
rbar=mean(r);
cbar=mean(c);
plot(cbar,rbar,‘marker,‘。,‘markeredgecolor,‘w,‘markersize,4);%显示连通并对每一连通数标记“。”
text(cbar,rbar,‘K,‘string,num2str(k),‘color,‘r,‘fontsize,15);%显示对每一个连通数的编号
end
2 结果与分析
2.1 流程及效果
图像计数方法的流程如图1所示。用黏连区域演示流程效果,如图2所示。
2.2 程序代码执行情况
以水稻种子图像(图3)为例,最右侧图片为执行上述代码后的显示结果。代码运行速度快,根据连通图的数量得出种子颗粒数为18个。人工校正过程中发现,运行中对较大黏连的图像区域难以分割,会造成漏计现象,真实数量应该是19个。Matlab可以识别多种图片格式,并不限于JPG格式。
2.3 图像采集
实际图像采集的过程中会存在各种情况。①纸张上会存在阴影、明暗光线等,严重情况下可补充光源来消除。②计数对象数量较多,纸张面积不够,可平铺多张A4纸。③计算对象体积较小,可利用高分辨率相机拍照,增加图像上单位面积像素点。④散落不均匀,黏连数量较多,可人工消散。不需要消除黏连的每一个目标,可在后期图片上进行人工校正,若取相过程中每一个目标都需要人工消除黏连,则不再具备速度优势,可扩大取相区域,使计数目标的散落面积增大,扩大离散度。
2.4 图像去噪处理
处理的目的是减少背景的杂值干扰,增加Photoshop处理环节,背景色选择范围变广,适用性增强。填充黑色背景是便于matlab二值化处理后,赋予黑色图像元素为“0”值,“0”值是代表背景值。不填充黑色,则需在matlab软件编程中添加一段反运算代码,增加了运算量,代码执行速度变慢。
2.5 分割算法和代码
对黏连区域的分割是一个难题。目前基于阈值、边缘、分水岭等大类的分割方法比较多,但都有一定的局限性[7]。本文代码是利用计算图像目标的连通数,来确定目标数量,算法对黏连区域的分割优劣,直接决定了计数的准确率。代码对黏连区域的分割和杂值消除的效果影响了计算结果,存在有一定的误差,但对每一个计数目标进行了编号,后期可以人工校正。腐蚀使物体向内收缩,圖像中目标物体的形状也会变小,但只需要计算物体的个数,并不需要考虑物体的形状。
通过程序执行结果来看,对目标物体大范围接触的黏连区域分割效果不佳。由于图像是由每一个像素组成,通过代码执行程序,理论上可知:结构元素(处理累计)>目标物体的宽,可使目标物体断裂,计算的数量变大;结构元素(处理累计)>目标物体的长,可使得目标物体消失,计算的数量变小;黏连区域接触点直线长>目标物体的宽时,代码就比较难分割黏连区域。因此,需要选择好结构元素,合理安排腐蚀运算和开运算,去除小物体的同时不会造成目标物体消失。
3 结论与讨论
在实际考种过程中需要计算结实率,代码并不能识别,为此可以设计通过一定高度自由落体,在一定风速下分离种子,分别取照,此步骤需要人工进行操作。在实际操作过程中,光照和目标数量对图像计数有较大的影响。光照影响可以用各种光源来消除,目标数量可以限制在1~2个稻穗的数量级,还可以通过多张A4纸平铺来扩大拍照区域。从代码运行结果来看,存有比真实值小的情况,有一定的误差。误差是由于种子聚集,导致图像中出现黏连区域,黏连区域分割不佳。在实际应用中,可以通过人工和仪器设备干扰颗粒分离度来提高图像处理的准确性,还可以对图像中目标进行编号,方便人工校正。从计数结果来看,图像计数能够胜任绝大多数需要计数的工作,具有方便快捷、成本低廉、适于推广、准确性高的特点。对比人工的偶然误差,图像计数的误差是由编程程序引起的,属于系统误差。随着图像处理技术的发展,对黏连区域分割研究的突破,代码的不断优化,图像计数将越来越具有优势。
参考文献
[1] 徐杰.数字图像处理[M].武汉:华中科技大学出版社,2009.
[2] 莫德举,梁光华.数字图像处理[M].北京:北京邮电大学出版社,2010.
[3] 张黄群,于盛林,白银刚.形态学图像去噪中结构元素选取原则[J]. 数据采集与处理,2008(S1):81-83.
[4] 阮秋琦.数字图像处理学(第二版)[M].北京:电子工业出版社,2007.
[5] 杨琨,曾立波,王殿成.数学形态学腐蚀膨胀运算的快速算法[J].计算机工程与应用,2005(34):54-56.
[6] 钟雪君.一种改进的Otsu双阈值二值化图像分割方法[J].电子世界,2013(4):104.
[7] 张轩,张新峰.粘连颗粒图像分割方法综述[J].图像与信号处理,2018,7(3):6.
(责编:何 艳)