一种汽车表盘指针的快速并行细化方法与流程

文档序号:18034417发布日期:2019-06-28 23:06阅读:230来源:国知局
一种汽车表盘指针的快速并行细化方法与流程

本发明涉及机器视觉测量技术领域,涉及一种汽车表盘指针的快速并行细化方法。



背景技术:

在汽车生产行业中,汽车表盘的生产是尤为关键的一环,在产品出厂检测时对指针指示读数的正误是判定表盘是否合格的其中一项重要指标,目前国内对于指针指示读数识别通常采用的是视觉检测的方式,先通过提取出的指针图像,对指针图像进行细化,再对细化的图像进行直线拟合,针对直线斜率最后换算实际的速度值。常用的指针图像细化方法:

(1)通过hough变换对指针图像进行细化,但hough变换中需要手动设置累加平面的阈值参数,因此无法实现自适应,经常会出现细化出的直线有多于一条的情况,另外,由于hough变换是将整个图像像素数据一起运算,在处理速度上相对较慢。

(2)通过zs快速并行算法对指针图像进行细化,zs快速并行算法是一种重复删除图像边缘满足一定条件的像素,最终得到单像素宽带骨架的细化方法,虽然利用该方法细化后的图像仅留下一条直线,但直线上的分叉过多,导致后续影响直线拟合求取斜率的结果,另外在图像局部会出现多处像素冗余的情况,无法实现单像素。



技术实现要素:

本发明针对现有技术的不足,提供了一种汽车表盘指针的快速并行细化方法,该方法先对汽车仪表盘初始图像进行红色单通道图像提取,对红色单通道的图像进行二值化,轮廓检测预处理,再提取仅含有指针连通域的图像,对指针连通域图像采用zs快速并行细化算法得到初始细化图像,然后进行逐行逐列搜索,找到第一个细化起点,通过先斜线再十字的顺序进行搜索相邻像素点,并规定细化起点八邻域内的方向序号,根据不同的方向条件,分别比较当前像素点与周围像素点以及起始搜索像素点之间的方向关系,将满足条件的像素点压入种子序列,作为下一次细化的起点,最终根据种子序列遍历完成情况,若还未遍历完成,则继续细化,若已遍历完成,则结束细化过程。该方法有效解决了zs快速并行算法中无法去除局部像素冗余、细化直线存在分叉的情况,且运算速度较快,一定程度上提高了后续求取直线斜率的准确率。

本发明所采用的技术方案是,一种汽车表盘指针的快速并行细化方法,具体按照以下步骤实施:

步骤1:读取汽车仪表盘初始图像;

步骤2:获取汽车仪表盘初始图像中红色单通道图像,并进行二值化、轮廓检测预处理,单独提取出指针连通域图像,并对指针联通域图像采用zs快速并行算法得到初始化指针细化图像;

步骤3:以指针初始细化图像左上角为搜索起点,逐行逐列寻找连通域中首个像素值不为0的点,设该像素点p0为细化起点;

步骤4:按顺时针方向定义像素点p0八邻域内方向序号,并在该点的八邻域内按先斜线后十字的顺序搜索是否存在相邻像素点p1,若存在像素点p1,则先确定两个相邻像素点间的方向dir0,再将像素点p0取反,并将像素点p0的位置信息压入种子序列中,然后进入步骤5;

步骤5:将像素点p1作为新的细化起点,在像素点p1的八邻域内按先斜线后十字的顺序搜索是否存在相邻像素点p2,若存在像素点p2,则确定两个相邻像素点之间的方向dir1,若dir1与dir0两方向间的差值属于[0,1]范围内,则确定像素点p2相对于像素点p0的象限方位,若dir1属于相应的像素方向范围内,则将像素点p1作为起始像素点p0,并将像素点p1位置信息压入种子序列,若存在“t”字型特殊情况,则优先处理特殊情况;若dir1与dir0两方向间的差值不属于[0,1]范围内,则进入步骤6;

步骤6:若dir1与dir0两方向间的差值属于[-1,0)的范围内,则将像素点p2做为新的搜索起点,确定像素点p2相对于像素点p0象限方位dir1,若dir1满足规定像素方向范围,则在像素点p2的八邻域内按先斜线后十字的顺序搜索是否存在不属于p1八邻域内相邻像素点p3,确定相邻像素点p2与p3间的方向dir2,若dir2与dir0两方向间差值的绝对值属于[0,2)的范围内,则将像素点p1作为新的起始像素点p0,并将像素点p1的位置信息压入种子序列中;若dir2与dir0两方向间差值的绝对值不属于[0,2)的范围内,则进入步骤7;

步骤7:若dir2与dir0两方向间差值的绝对值不属于[0,2)的范围内,则以当前像素点p3为新的搜索起点,在像素点p3八邻域内按先斜线后十字的顺序搜索是否存在相邻且不属于p3八邻域内的像素点p4,如存在像素点p4,则确定相邻像素点p3与p4间的像素方位dir3,若dir3与dir1两方向相等或者dir3与dir0的差值的绝对值小于等于1,则将像素点p1作为起始像素点p0,并将像素点p1压入种子序列中,若dir3与dir2两方向相等,则存在“一”字型特殊情况,则转入处理“一”字型特殊情况算法;

步骤8:判断压入种子序列中的种子是否已经历遍完,若已经历遍完,则将种子序列中的种子依次在新建的背景图像中输出;若未遍历完,则转入步骤4;

步骤5中处理“t”字型特殊情况,具体按照以下过程进行实施:

以当前像素点p2作为搜索起点,确定像素点p2八邻域内1至3、6方向上的像素值,若像素点p2规定四个方向上的像素值都为1,则将像素点p1作为起始像素点p0,并将像素点p1压入种子序列中;若像素点p2规定四个方向上的像素值并不都为1,则将当前p2像素值置为0;

步骤7中处理“一”字型特殊情况算法,按照以下过程进行实施:

以当前搜索点p4作为搜索起点,判断是否存在相邻且不属于p4八邻域内像素点p5,若存在相邻像素点p5,则确定p5与p4间的象限方位dir4,若dir4与dir1相等或dir4与dir1间的差值的绝对值小于等于1,则将像素点p1作为起始像素点p0,并将像素点p1压入种子序列中。

本发明的有益效果是,能较好的解决zs快速并行算法存在的局部像素冗余情况以及细化图像容易出现分叉的情况,一定程度上提高了后续求取直线斜率的准确率,同时运算速度快,处理简单。

附图说明

图1是本发明方法的步骤流程图;

图2是本发明方法获取的汽车仪表盘初始图像;

图3是本发明方法获取的汽车仪表盘二值化图像;

图4是本发明方法提取的只含有指针连通域的图像;

图5是本发明方法采用zs快速并行细化算法得到的初始化指针细化图像;

图6是本发明对像素点八邻域内方向序号定义示意图;

图7是本发明方法步骤5算法流程图;

图8是本发明方法步骤6算法流程图;

图9是本发明方法步骤7算法流程图;

图10是本发明方法获取的细化结果图;

图11是本发明处理“t”字型特殊情况算法流程图;

图12是本发明处理“一”字型特殊情况算法流程图;

具体实施方式

以下结合附图对本发明权利要求1作进一步说明。

如图1所示,本发明方法的步骤是:

步骤1:读取汽车仪表盘初始图像

得到汽车表盘原始检测图像i0,如图2所示;

步骤2:获取汽车仪表盘初始图像中红色单通道图像,并进行二值化、轮廓检测预处理,单独提取出指针连通域图像,并对指针连通域图像采用zs快速并行算法得到初始化指针细化图像

对汽车表盘原始检测图像i0进行单通道处理,提取得到红色单通道图像irroi,对图像irroi采用otsu法进行二值化分割处理得到二值化图像biroi,如图3所示;对获得的图像biroi进行轮廓检测,获取每个轮廓的面积areai(i=1,2,3,…,n)以及各区域最小外接矩形的伸长比lwi(i=1,2,3,…,n),若areai满足面积阈值条件,即大于ath1,且伸长比lwi满足阈值条件,即大于lth1,则将该目标连通域单独提取出,得到只含有指针连通域的图像iz,如图4所示;对图像iz采用zs快速并行细化算法得到初始化指针细化图像iz1,如图5所示;

步骤3:以指针初始细化图像左上角为搜索起点,逐行逐列寻找连通域中首个像素值不为0的点,设该像素点p0为细化起点

以指针初始细化图像iz1的左上角为搜索起点,逐行逐列寻找连通域中首个像素值不为0的点,设该像素点p0为细化起点,并建立种子序列seedlist;

步骤4:按顺时针方向定义像素点p0八邻域内方向序号,并在该点的八邻域内按先斜线后十字的顺序搜索是否存在相邻像素点p1,若存在像素点p1,则先确定两个相邻像素点间的方向dir0,再将像素点p0取反,并将像素点p0的位置信息压入种子序列中,然后进入步骤5

按顺时针方向定义像素点p0八邻域内方向序号,具体编号为1至8,如图6所示,并在该点的八邻域内按先斜线后十字的顺序搜索是否存在相邻像素点p1,若存在像素点p1,则先确定两个相邻像素点间的方向dir0,再将像素点p0取反,并将像素点p0的位置信息压入种子序列seedlist中,然后进入步骤5。

步骤5:将像素点p1作为新的细化起点,在像素点p1的八邻域内按先斜线后十字的顺序搜索是否存在相邻像素点p2,若存在像素点p2,则确定两个相邻像素点之间的方向dir1,若dir1与dir0两方向间的差值属于[0,1]范围内,则确定像素点p2相对于像素点p0的象限方位,若dir1属于相应的像素方向范围内,则将像素点p1作为起始像素点p0,并将像素点p1位置信息压入种子序列,若存在“t”字型特殊情况,则优先处理特殊情况;若dir1与dir0两方向间的差值不属于[0,1]范围内,则进入步骤6

步骤5算法流程图如图7所示,在步骤5中,将像素点p1作为新的细化起点,在像素点p1的八邻域内按先斜线后十字的顺序搜索是否存在相邻像素点p2,若存在像素点p2,则确定两个相邻像素点之间的方向dir1,若dir1与dir0两方向间的差值属于[0,1]范围内,则确定像素点p2相对于像素点p0的象限方位,若dir1属于相应的像素方向范围内,则将像素点p1作为起始像素点p0,并将像素点p1位置信息压入种子序列seedlist中,若存在“t”字型特殊情况,则优先处理特殊情况;若dir1与dir0两方向间的差值不属于[0,1]范围内,则进入步骤6。

步骤6:若dir1与dir0两方向间的差值属于[-1,0)的范围内,则将像素点p2做为新的搜索起点,确定像素点p2相对于像素点p0象限方位dir1,若dir1满足规定像素方向范围,则在像素点p2的八邻域内按先斜线后十字的顺序搜索是否存在不属于p1八邻域内相邻像素点p3,确定相邻像素点p2与p3间的方向dir2,若dir2与dir0两方向间差值的绝对值属于[0,2)的范围内,则将像素点p1作为新的起始像素点p0,并将像素点p1的位置信息压入种子序列中;若dir2与dir0两方向间差值的绝对值不属于[0,2)的范围内,则进入步骤7

步骤6算法流程图如图8所示,在步骤6中,若dir1与dir0两方向间的差值属于[-1,0)的范围内,则将像素点p2作为新的搜索起点,确定像素点p2相对于像素点p0象限方位dir1,若dir1满足规定像素方向范围,则在像素点p2的八邻域内按先斜线后十字的顺序搜索是否存在不属于p1八邻域内相邻像素点p3,确定相邻像素点p2与p3间的方向dir2,若dir2与dir0两方向间差值的绝对值属于[0,2)的范围内,则将像素点p1作为新的起始像素点p0,并将像素点p1的位置信息压入种子序列seedlist中;若dir2与dir0两方向间差值的绝对值不属于[0,2)的范围内,则进入步骤7。

步骤7:若dir2与dir0两方向间差值的绝对值不属于[0,2)的范围内,则以当前像素点p3为新的搜索起点,在像素点p3八邻域内按先斜线后十字的顺序搜索是否存在相邻且不属于p3八邻域内的像素点p4,如存在像素点p4,则确定相邻像素点p3与p4间的像素方位dir3,若dir3与dir1两方向相等或者dir3与dir0的差值的绝对值小于等于1,则将像素点p1作为起始像素点p0,并将像素点p1压入种子序列中,若dir3与dir2两方向相等,则存在“一”字型特殊情况,则转入处理“一”字型特殊情况算法

步骤7算法流程图如图9所示,在步骤7中,若dir2与dir0两方向间差值的绝对值不属于[0,2)的范围内,则以当前像素点p3为新的搜索起点,在像素点p3八邻域内按先斜线后十字的顺序搜索是否存在相邻且不属于p3八邻域内的像素点p4,如存在像素点p4,则确定相邻像素点p3与p4间的像素方位dir3,若dir3与dir1两方向相等或者dir3与dir0的差值的绝对值小于等于1,则将像素点p1作为起始像素点p0,并将像素点p1压入种子序列seedlist中,若dir3与dir2两方向相等,则存在“一”字型特殊情况,则转入处理“一”字型特殊情况算法。

步骤8:判断压入种子序列中的种子是否已经历遍完,若已经历遍完,则将种子序列中的种子依次在新建的背景图像中输出;若未遍历完,则转入步骤4

判断压入种子序列seedlist中的种子是否已经历遍完,若已经历遍完,则将种子序列中的种子依次在新建的背景图像ires中输出,得到的细化结果图如图10所示;若未遍历完,则转入步骤4。

以下结合附图11、12对本发明权利1中所述的处理“t”字型与“一”字型两种特殊情况算法作进一步说明。

处理“t”字型特殊情况算法按照以下进行实施:

以当前像素点p2作为搜索起点,确定像素点p2八邻域内1至3、6方向上的像素值。若像素点p2规定四个方向上的像素值都为1,则将像素点p1作为起始像素点p0,并将像素点p1压入种子序列中;若像素点p2规定四个方向上的像素值并不都为1,则将当前p2像素值置为0,处理“t”字型特殊情况算法流程图如图11所示。

处理“一”字型特殊情况算法按照以下进行实施:

以当前搜索点p4作为搜索起点,判断是否存在相邻且不属于p4八邻域内像素点p5,若存在相邻像素点p5,则确定p5与p4间的象限方位dir4,若dir4与dir1相等或dir4与dir1间的差值的绝对值小于等于1,则将像素点p1作为起始像素点p0,并将像素点p1压入种子序列中,处理“一”字型特殊情况算法流程图如图12所示。

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