一种基于蚕食法的线结构光骨架剪枝方法与系统技术方案

技术编号:27292062 阅读:36 留言:0更新日期:2021-02-06 12:01
本发明专利技术提供了一种基于蚕食法的线结构光骨架剪枝方法与系统,通过获取待剪枝的二值骨架图像,通过蚕食法根据骨架点类型构建线结构光骨架的无向加权图G;在无向加权图G中通过最短路径算法计算图的最长路径,并得到最长路径所包含的顶点,作为线结构光骨架主干顶点;遍历线结构光骨架主干顶点,访问与顶点邻接且属于主干顶点的边,从边中读取该路径上所包含的像素点集,对该点集赋像素值,得到光骨架的主干线。本发明专利技术从第一个端点出发,访问一个点蚕食一个点,可大幅减少算法的复杂度,具有更高的效率,且可在蚕食阶段会自动将闭环分枝转换为普通分枝进行处理,故减少了操作的复杂度,进一步提高了算法的效率和易用性。进一步提高了算法的效率和易用性。进一步提高了算法的效率和易用性。

【技术实现步骤摘要】
一种基于蚕食法的线结构光骨架剪枝方法与系统


[0001]本专利技术涉及图像处理
,特别是一种基于蚕食法的线结构光骨架剪枝方法与系统。

技术介绍

[0002]在线结构光测量技术中,由被测物体高度调制后的变形条纹是实现三维测量的主要信息源,然而条纹宽度通常都大于1个像素,因此准确获取条纹中心是测量的关键任务之一。为了提高条纹中心的提取精度,需要以条纹骨架像素点为初始条纹中心点来计算条纹法线方向。目前,数学形态学骨架提取方法应用较广泛,理论上该方法得到的骨架能反映线结构光条纹的真实走向且具有单向连通性,但是由于线结构光条纹中灰度分布不均匀、边缘像素不平滑,使得提取后的骨架存在破坏其单向连通性的分枝、毛刺等,进而影响条纹中心的提取精度,因此为了保证骨架的单向连通性,必须对提取后的骨架进行剪枝处理。
[0003]传统的剪枝算法通过编码查表的方式去除长度小于设定阈值的分枝,但是只能用于去除普通分枝,不能去除复杂分枝,并且会将部分骨架主干当作分枝去除。

技术实现思路

[0004]本专利技术的目的是提供一种基于蚕食法的线结构光骨架剪枝方法与系统,旨在解决现有技术中骨架提取存在精度低以及复杂度高的问题,实现减少操作的复杂度,提高剪枝效率和易用性。
[0005]为达到上述技术目的,本专利技术提供了一种基于蚕食法的线结构光骨架剪枝方法,所述方法包括以下操作:
[0006]获取待剪枝的二值骨架图像,确定骨架中的端点、孤点和遭遇点,通过蚕食法根据骨架点类型构建线结构光骨架的无向加权图G;
[0007]在无向加权图G中通过最短路径算法计算图的最长路径,并得到最长路径所包含的顶点,作为线结构光骨架主干顶点;
[0008]遍历线结构光骨架主干顶点,访问与顶点邻接且属于主干顶点的边,从边中读取该路径上所包含的像素点集,对该点集赋像素值,得到光骨架的主干线。
[0009]优选地,所述端点、孤点和遭遇点的确定通过骨架点8邻域内的交叉数和纹线点数来判断,所述交叉数为骨架点8邻域内像素点灰度值的变化次数的一半,用C
n
表示:
[0010][0011]式中:p0为目标骨架点;p
i
为p0的8邻域内的像素点;
[0012]所述纹线点数定义为骨架8邻域内灰度值大于0的骨架点个数,用S
n
表示:
[0013][0014]式中:p0为目标骨架点;p
i
为p0的8邻域内的像素点。
[0015]优选地,所述端点定义为:C
n
(p0)=1,S
n
(p0)=1 or 2 or 3;所述孤点定义为:C
n
(p0)=0,S
n
(p0)=0;所述遭遇点为除了端点以及孤点以外的点。
[0016]优选地,所述通过蚕食法根据骨架点类型构建线结构光骨架的无向加权图G具体操作为:
[0017]获取图像中最左最上的非零像素点pt,在pt的16邻域中计算非零像素点的类型,若搜索到端点,则将其设为蚕食的起点,并记为start_pt,否则扩大邻域继续搜索,直至搜索到一个端点;
[0018]构建无向加权图G的第一个顶点v,并将start_pt保存在顶点v中;构建一条边e和e所邻接的顶点adj_v,初始化e上的权重为1,并在e中保存顶点adj_v的编号;将e加入顶点v的邻接表中,将v和adj_v加入到图的顶点集V中;蚕食掉start_pt点,获取下一个可访问的骨架点new_pt;
[0019]获得新的骨架点pt后,判断其点类型:当pt为端点时,将当前边e所对应的路径长度加1并将pt保存在e中,蚕食掉pt点后,获取下一个可访问的骨架点new_pt;当pt为孤点时,将当前边e所对应的路径长度加1,在e所邻接的顶点adj_v中保存该点pt的坐标,而后蚕食掉pt点;当pt为遭遇点时,在当前边e所邻接的顶点v中保存该点pt的坐标,而后获取下一个可访问的所有骨架点new_pts,在每个new_pt的分枝方向上,构建一条边e和e所邻接的顶点adj_v,初始化e上的权重为1,并在e中保存顶点adj_v的编号;将e加入顶点v的邻接表中,将adj_v加入到无向加权图G的顶点集V中,而后清零pt本身以及8领域并恢复new_pt的像素值。
[0020]优选地,所述在无向加权图G中通过最短路径算法计算图的最长路径具体为:
[0021]设图G=(V,E)所有顶点的集合为V,起点为s,最短路径树中包含的顶点集合为S;
[0022]初始化s的d[s]=0,除s以外,所有属于V的顶点i的d[s]=∞,以d[i]为键值,将V的顶点构成最小堆H;循环进行下述处理,直至S=V为止:
[0023]从H中取出d[u]最小的顶点u,将u添加至S,同时将与u相邻且属于V-S的所有顶点v的值按下述方式进行更新:
[0024]ifd[u]+w(u,v)<d[v][0025]d[v]=d[u]+w(u,v)
[0026]p[v]=u
[0027]以v为起点更新堆H。
[0028]优选地,所述蚕食具体为将骨架点的像素值设为0。
[0029]优选地,所述二值骨架图像在蚕食后得到空白图像。
[0030]优选地,所述最短路径算法使用优先级队列进行优化,时间复杂度为:
[0031]O(|V|(|V|+|E|)log|V|)
[0032]其中,|V|为图G中顶点的个数,|V|为图G中边的个数。
[0033]本专利技术还提供了一种基于蚕食法的线结构光骨架剪枝系统,所述系统包括:
[0034]蚕食模块,用于获取待剪枝的二值骨架图像,确定骨架中的端点、孤点和遭遇点,通过蚕食法根据骨架点类型构建线结构光骨架的无向加权图G;
[0035]计算模块,用于在无向加权图G中通过最短路径算法计算图的最长路径,并得到最长路径所包含的顶点,作为线结构光骨架主干顶点;
[0036]重建模块,用于遍历线结构光骨架主干顶点,访问与顶点邻接且属于主干顶点的边,从边中读取该路径上所包含的像素点集,对该点集赋像素值,得到光骨架的主干线。
[0037]本专利技术还提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现所述的基于蚕食法的线结构光骨架剪枝方法。
[0038]
技术实现思路
中提供的效果仅仅是实施例的效果,而不是专利技术所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
[0039]与现有技术相比,本专利技术从第一个端点出发,访问一个点蚕食一个点,故在点类型的判断上只需判断两种最简单的点类型(端点和孤点),而传统剪枝算法需要判断四种点类型(端点、孤点、分枝点和连续点),相比之下,本专利技术可大幅减少算法的复杂度,具有更高的效率。另外传统算法在获得线结构光骨架的二值图像时,需要先进行闭环分枝开环处理,即对于闭环分枝(分枝上的部分像素点形成了一个闭环),由于在闭环处的骨架点不满足端点判断条件,因此在剪本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于蚕食法的线结构光骨架剪枝方法,其特征在于,所述方法包括以下操作:获取待剪枝的二值骨架图像,确定骨架中的端点、孤点和遭遇点,通过蚕食法根据骨架点类型构建线结构光骨架的无向加权图G;在无向加权图G中通过最短路径算法计算图的最长路径,并得到最长路径所包含的顶点,作为线结构光骨架主干顶点;遍历线结构光骨架主干顶点,访问与顶点邻接且属于主干顶点的边,从边中读取该路径上所包含的像素点集,对该点集赋像素值,得到光骨架的主干线。2.根据权利要求1所述的一种基于蚕食法的线结构光骨架剪枝方法,其特征在于,所述端点、孤点和遭遇点的确定通过骨架点8邻域内的交叉数和纹线点数来判断,所述交叉数为骨架点8邻域内像素点灰度值的变化次数的一半,用C
n
表示:式中:p0为目标骨架点;p
i
为p0的8邻域内的像素点;所述纹线点数定义为骨架8邻域内灰度值大于0的骨架点个数,用S
n
表示:式中:p0为目标骨架点;p
i
为p0的8邻域内的像素点。3.根据权利要求2所述的一种基于蚕食法的线结构光骨架剪枝方法,其特征在于,所述端点定义为:C
n
(p0)=1,S
n
(p0)=1 or 2 or 3;所述孤点定义为:C
n
(p0)=0,S
n
(p0)=0;所述遭遇点为除了端点以及孤点以外的点。4.根据权利要求1所述的一种基于蚕食法的线结构光骨架剪枝方法,其特征在于,所述通过蚕食法根据骨架点类型构建线结构光骨架的无向加权图G具体操作为:获取图像中最左最上的非零像素点pt,在pt的16邻域中计算非零像素点的类型,若搜索到端点,则将其设为蚕食的起点,并记为start_pt,否则扩大邻域继续搜索,直至搜索到一个端点;构建无向加权图G的第一个顶点v,并将start_pt保存在顶点v中;构建一条边e和e所邻接的顶点adj_v,初始化e上的权重为1,并在e中保存顶点adj_v的编号;将e加入顶点v的邻接表中,将v和adj_v加入到图的顶点集V中;蚕食掉start_pt点,获取下一个可访问的骨架点new_pt;获得新的骨架点pt后,判断其点类型:当pt为端点时,将当前边e所对应的路径长度加1并将pt保存在e中,蚕食掉pt点后,获取下一个可访问的骨架点new_pt;当pt为孤点时,将当前边e所对应的路径长度加1,...

【专利技术属性】
技术研发人员:张广渊王康高晓楠赵峰王朋谢振华李克峰
申请(专利权)人:山东交通学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1