一种快速统计图像标记连通的方法与流程

文档序号:13672211阅读:162来源:国知局
技术领域本发明涉及智能驾驶图像处理领域,具体为一种快速统计图像标记连通的方法。

背景技术:
随着智能驾驶技术与无人驾驶技术的发展与成熟,图像处理与识别技术在其中扮演着越来越重要的作用。而在车牌识别、斑马线识别、红绿灯识别、停止线识别与测距等智能驾驶相关技术中,都会用到标记连通来统计图像中的连通信息已完成检测与测距工作。现在的标记连通函数,往往只能将连通区域置为相同值,给出一个连通域矩阵。而我们需要的单个连通域在图像中的起始行、终止行、起始列、终止列、连通域内点的个数、连通域的高、连通域的宽等统计信息,都没有给出,需要通过统计连通域矩阵来给出。而再次统计,不但消耗大量的时间,还容易造成错误。

技术实现要素:
针对现有技术的不足,本发明提供一种快速统计图像标记连通信息的方法,快速给出图像中,每个连通区域的统计信息。本发明为实现上述目的所采用的技术方案是:一种快速统计图像标记连通的方法,包括以下步骤:步骤1:采集灰度图像;步骤2:对采集的灰度图像用均值-直方图法,求得二值化阈值,得到二值图;步骤3:统计第一行中单个的连通域信息;步骤4:将当前行的连通域信息保存到信息数组中;步骤5:判断是否为图像最后一行,如果是,则信息数组统计结束,执行步骤7;否则,统计下一行中单个的连通域信息,并执行步骤6;步骤6:判断当前行连通域信息与上一行连通域信息是否有重叠,如果有,则更新当前信息数组;否则执行步骤4;步骤7:根据统计的信息数组,统计图像中存在的连通域信息。所述均值-直方图法为:步骤1:统计灰度图像的直方图,记为piA;求的图像灰度值的平均值为:aver=(Σi∈(0,255)piA[i]*i)/(iH*iW)]]>其中,piA为存储图像的直方图,iH为图像的高,iW为图像的宽,aver为图像灰度值的平均值;步骤2:利用直方图计算不大于图像灰度值的平均值aver的灰度值的平均值:aver1=(Σi=0averpiA[i]*i)/(Σi=0averpiA[i])]]>同理计算大于图像灰度值的平均值aver的灰度值的平均值:aver2=(Σi=aver+1255piA[i]*i)/(Σi=aver+1255piA[i])]]>其中,aver1为不大于图像灰度值的平均值,aver的灰度值的平均值,aver2为大于图像灰度值的平均值aver的灰度值的平均值;步骤3:判断条件|aver-(aver1+aver2)/2|<5是否成立,若成立,则图像灰度值的平均值aver就是所求的二值化阈值,否则aver=(aver1+aver2)/2,返回步骤2。所述统计图像中存在的连通域信息包括以下过程:步骤1:在信息数组中检索第四位相同的行;步骤2:在第四位相同的行中进行列统计;步骤3:在第四位相同的行中进行行统计;步骤4:根据统计出的行、列信息,计算出连通域信息。所述列统计包括统计第四位相同的行中第一位的最小值、第二位的最大值和第三位的累加和。所述行统计包括统计第四位相同的行中最小行序列和最大行序列。所述根据统计出的行、列信息,计算出连通域信息包括以下过程:连通域的起始列为第四位相同的行中第一位的最小值,连通域的终止列为第四位相同的行中第二位的最大值,连通域内像素点的个数为第四位相同的行中第三位的累加和,连通域的起始行为第四位相同的行中最小行序列,连通域的终止行为第四位相同的行中最大行序列。所述信息数组是一个列数为5的数组,用来存储一行中,单个连通区域的连通域信息。所述信息数组的每一行中,第一位用来存储当前行单个连通域的起始像素点所在的列,第二位用来存储当前行单个连通域的终止像素点所在的列,第三位用来存储单个连通域的像素点的个数,第四位用来存储该连通域的标记值,第五位用来存储当前行的行序列。所述连通域的标记值是一个由2开始的递增序列。本发明具有以下有益效果及优点:1.本发明在统计连通域的同时,给出图像中单个连通域的信息。2.本发明统计连通域的速度加快,带单个连通域信息的标记连通算法是传统标记连通实现的十倍以上。附图说明图1是本发明的方法流程图;图2是本发明的均值-直方图法示意图;图3是本发明的信息数组示意图。具体实施方式下面结合附图及实施例对本发明做进一步的详细说明。本发明的流程图如图1所示。在前期采集的灰度图像中,首先对图像进行二值化处理。传统的二值化手段,如大津法、局部二值化法等,存在时间与效果相对立的情况,时间与效果很难兼顾。本文采用了一种快速直方图-均值二值化的方法对图像进行二值化处理,该方法是一种类似大津法的全局二值化方法,但较大津法效率更高,而结果相差不大。均值-直方图法示意图如图2所示。首先统计灰度图像的直方图,记为piA。利用图像的直方图,可以求的图像灰度值的平均值为:aver=(Σi∈(0,255)piA[i]*i)/(iH*iW)]]>其中piA存储图像的直方图,iH为图像的高,iW为图像的宽,i属于(0,255)利用直方图计算小于等于aver的灰度的平均值aver1=(Σi=0averpiA[i]*i)/(Σi=0averpiA[i])]]>同理计算大于aver的灰度的平均值aver2=(Σi=aver+1255piA[i]*i)/(Σi=aver+1255piA[i])]]>判断条件|aver-(aver1+aver2)/2|<5是否成立,若成立,则aver就是所求的二值化阈值,否则aver=(aver1+aver2)/2,重复上述步骤。如图3所示为本发明的信息数组示意图。利用求得的阈值对图像进行二值化处理得到二值图。在二值图中统计第一行的每个连通区域的连通信息,并将每个连通区域的连通信息存到“信息数组”中。在第一行中,有两个连通域。第一个连通域从第1个像素到第三个像素。第二个连通域从第8个像素到第9个像素。“信息数组”用来存储一行中,单个连通区域的连通信息,信息数组piY是一个宽度为5的数组。每一行中,第一位用来存储本行单个连通域的起始像素点、第二位用来存储本行单个连通域的终止像素点、第三位用来存储单个连通域的长度、第四位用来存储该连通域的标记值、第五位用来存储本行的行号。第四位存储的连通域的标记值是一个由2开始的递增序列。统计完第一行连通信息之后,统计第二行的连通信息。如果第二行的连通信息与第一行有重叠部分。则更新信息数组。若没有重叠部分,则进行下一行。如图3所示。第二行有两个连通域,第一个连通域与第一行的连通域有交接。所以要将这两个连通域合并成一个连通域,将这两个连通域的标记值记为第二行连通域的标记值。第二行第二个连通域的与第一行的连通域没有叠加的部分,因此不需要更改信息数组。完成第二行标记区域统计之后,进行下一行,单个连通域的统计。并查看该连通域与上一行的连通域是否有叠加。如果有叠加则需要更新信息数组第四位连通区标记值。以此类推,逐渐更新标记连通“信息数组”,完成整幅图像的连通区域的统计。完成全图连通区域的统计之后,需要统计图像中单个连通域的信息。此时利用标记连通信息数组,在数组中检索第四位相同的行。对第四位相同的行,统计所有行中第一位最小的值与第二位最大的值,完成对单个连通域信息起始列与终止列的统计,而该连通域的起始行与终止行则可以通过第五位来进行统计。将第四位相同的行,第三位数值进行累加,可以统计出该单个连通区域内,所有为1的点的个数。通过该连通域的起始行、列可以计算出该连通域的高与宽,完成图像中单个连通域的统计工作。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1