[0021] 实施例1、图1~图4给出了一种基于灰度共生矩阵的草地未割区域分界线提取方法。
[0022] 在一般草地中,未割过区域的草长势茂密,叶片成明显的条形状,纹理特征明显,而割过区域的草地相对平坦,两者存在较大的纹理差异,因此在图像的空间灰度矩阵中两个相隔一定距离的像素点之间在统计学上存在着一定的关系。而本发明采用如下的步骤实现在草地上未割区域分界线的提取:
[0023] 1)将彩色图像I(x,y)进行灰度计算,提取出灰度图I1(x,y);
[0024] 2)将灰度图像I1(x,y)进行等比例压缩,得到新的灰度图像I2(x,y);
[0025] 3)通过步骤2)提取的灰度图像I2(x,y)进行纹理特征值计算,获得特征值矩阵I3(x,y);
[0026] 4)将特征值矩阵I3(x,y)映射成对应的纹理分割二值图I4(x,y);
[0027] 5)将纹理分割二值图I4(x,y)进行图像的形态学操作得到优化后的纹理分割二值图I5(x,y);
[0028] 6)利用图I5(x,y)进行分割线的提取并最终得到带有分割线的图I6(x,y)。
[0029] 以上步骤中,彩色图像I(x,y)为256×256像素的彩色草地图,该图像的获取通过数码设备直接拍摄获取。
[0030] 在步骤1)中彩色图像I(x,y)经公式I1(x,y)=0.3*R(x,y)+0.59*G(x,y)+0.11*B(x,y)提取出相应的灰度图I1(x,y),其中R(x,y),G(x,y),B(x,y)分别为彩色图像I(x,y)的红色,绿色,蓝色分量;一般灰度图的灰度级数默认为256级,然而灰度级数直接影响灰度共生矩阵的计算量,过大的灰度级数会造成本发明中的计算机运算次数、内存占用大大增加,因此考虑到智能割草机器人工作的实时性和高效性,在提取出256级灰度图I1(x,y)之后,将该灰度图I1(x,y)进行直方图均匀化后再将每个像素点的值除以16或者32取整,获得新的灰度图像I2(x,y),此时,该新的灰度图像I2(x,y)灰度级就从原来的256级压缩为8或者16级,从而在不影响图像整体对比效果的前提下大大提高了运算效率。
[0031] 在通过以上的操作获取新的灰度图像I2(x,y)之后,进行相关的纹理特征值的计算。在纹理特征值的计算中并不是求灰度图像I2(x,y)的灰度共生矩阵,而是选取一定大小的滑动窗口对灰度图像I2(x,y)进行历遍计算操作。如图1,选取大小为3×3的滑动窗口,计算该窗口的灰度共生矩阵,并通过灰度共生矩阵特征值计算公式计算每个灰度共生矩阵对应的的特征值,再将求得的特征值赋值给滑动窗口的中心点像素,也就是图1中第二行第二列的位置。此时,第一个窗口的纹理特征值计算完毕,然后将滑动窗口向右移动一个像素点,用同样的方法可就求得第二行第三列的像素点对应的特征值,依次类推,原灰度图像I2(x,y)将成为一个由纹理特征值构成的特征值矩阵I3(x,y)。而对于边界像素点的处理则采用将灰度图像I2(x,y)外围补充若干圈像素点,如果是3×3的滑动窗口则补充一圈,5×5的滑动窗口则补充两圈,依此类推。外围像素点的灰度值与灰度图像I2(x,y)最外层像素点灰度值一致。
[0032] 在以上所述的计算灰度共生矩阵的过程中,可选取像素点0,45,90,135四个角度进行扫描统计,但若单独计算每个角度形成灰度共生矩阵,最后得到的纹理特征值矩阵过于复杂且无法从理论高度去证明最优角度的存在,因此本发明通过比较选取了四个角度的平均值作为生成最后的特征值矩阵I3(x,y)。
[0033] 在特征值矩阵I3(x,y)生成的过程中,不同的特征值所体现的纹理特征不同,并且直接影响最后纹理分割效果的好坏,所以在处理草地图像的过程中,本发明在固定其他参数情况下选取了“自相关”“对比度”“能量”“均匀性”四个具有代表性的特征值进行纹理分割二值图I4(x,y)的映射,并选取处理效果较好的“能量”作为标准参考值。
[0034] 在特征值矩阵I3(x,y)生成的过程中,滑动窗口的选取十分的重要,如果窗口选择过大将导致计算量和信息储存量变大,降低效率;但是窗口选择过小又会导致纹理信息失真从而使最终处理效果变差。这里对标准参考值“能量”分别进行了3×3,5×5,7×7,9×9四种窗口大小进行历遍,并选取处理效果较好的“3×3窗口”作为标准参考值。
[0035] 最后将生成的特征值矩阵I3(x,y)根据一定的方法映射为纹理分割二值图I4(x,y)。
[0036] 该映射的方法如下:
[0037] 统计特征值矩阵I3(x,y)上的所有像素点值,并将数值最大的和数值最小的像素点值提取出来,并取其平均值Mid=(Max+Min)/2;依次将特征值矩阵I3(x,y)的像素点值与Mid进行对比,大于Mid的将0赋值给此像素点,小于Mid的将255赋值给此像素点;最后就将原特征值矩阵I3(x,y)映射成一个只有0和255像素值组成的纹理分割二值图I4(x,y)。
[0038] 经过纹理分割的二值图I4(x,y)存在较多的杂质点,对后期处理造成了一定的影响。为了提高分割线提取的准确率,将纹理分割二值图I4(x,y)进行先腐蚀后膨胀的操作,去除纹理分割二值图I4(x,y)中多余的杂质点;在此基础上再进行先膨胀后腐蚀的操作,填充纹理分割二值图I4(x,y)中细小的空洞,使得草地未割区域和割过区域的差别显得更明显,并最终得到优化后的纹理分割二值图I5(x,y);通过以上膨胀腐蚀等简单的图像形态学处理,使得草地未割区域和割过区域的差别显得更明显。
[0039] 根据人眼的视觉特性,当我们在看到优化后的纹理分割二值图I5(x,y)时,脑中根据优化后的纹理分割二值图I5(x,y)中黑色像素点的分布位置和密集程度判断出分割线的位置与大致的走势,参考这种视觉特性,本发明在求得优化后的纹理分割二值图I5(x,y)的前提下通过一定的算法将分割线较为准确地通过机器语言提取出来。具体如下:
[0040] 第一步:先将以上步骤获取的优化后的纹理分割二值图I5(x,y)分成对称的左右两份,分别统计两边的黑色像素点个数:
[0041] 如果左侧个数大于右侧,则判定草地未割区域位于左半部分;
[0042] 如果右侧个数大于左侧,则判定草地未割区域位于右半部分。
[0043] 第二步:将优化后的纹理分割二值图I5(x,y)进行等宽度横向均匀切割,令横条宽度为L横条长度为N(如图2所示);需要注意的是:根据人眼判断在处理图像的过程中不会涉及到单个或者几个像素点,而是整体的、大量的,因此在选取横条宽度也就是对于整幅图进行横向均匀切割的时候不宜分得过细;
[0044] 随后从上至下提取第一个等宽横条统计其黑色像素点个数Nb,令当前条横条中黑色像素点的占有比例为P则
[0045] 第三步:根据第二步中所求的黑色像素点占有比例P拟定一个以T为长度的轮廓历遍器,其中T=P·N。
[0046] 而由于像素点分布的离散性,如果仅仅选取上述T作为长度会产生较大的误差,因此适当增加轮廓历遍器的长度T1=(P+t)×N,其中轮廓历遍器长度增加值t是一个范围为(0,0.3)的数值;具体的说,轮廓历遍器长度增加值t会根据不同的黑色像素点占有比例进行变化,当P=0~0.1时t=0.3;P=0.1~0.3时t=0.2;P=0.3~0.5时t=0.1;P>0.5时t=0(如图3所示)。
[0047] 随后从当前横条第一列像素点开始,以T1为单位长度,每次向右移动一个像素点并统计每个轮廓历遍器内黑色像素点的个数,当历遍完整个横条之后选取黑色像素点占有比例最多的最大轮廓历遍器IMAX。
[0048] 第四步:根据第一步中的统计,如果草地未割区判定为左半部分,则选取最大轮廓历遍器IMAX右侧边缘中心像素点作为当前横条统计出来的分割点;
[0049] 相反,如果草地未割区域判定为右半部分则选取最大轮廓历遍器IMAX左侧边缘中心像素点作为分割点。
[0050] 第五步:依此类推,将余下的横条做同样的历遍统计分别求出每一个横条所对应的分割点(该每一个横条所对应的分割点的计算为步骤三和步骤四的过程)。最后将每个分割点依次用直线连接起来便形成所求的分割线。
[0051] 最后,还需要注意的是,以上列举的仅是本发明的一个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。