提取骨骼图像的形状信息的方法及装置与流程

文档序号:11234916阅读:742来源:国知局
提取骨骼图像的形状信息的方法及装置与流程

本发明涉及图像识别技术领域,尤其涉及一种提取骨骼图像的形状信息的方法及装置。



背景技术:

随着缝纫机制版软件智能化趋势的发展,图像识别技术开始更多的应用于这一领域。当前,在缝纫机制版软件中提出了一种具有较高实用价值的设想:根据已有的缝品图像对应的骨骼图像,分析其线迹轨迹,进而自动生成花样。对缝品图像进行二值化处理后得到二值化图像,再对二值化图像进行进一步的细化处理后得到的图像称为骨骼图像,图像二值化处理就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果,骨骼图像仅仅是像素点的集合,不具备任何语义信息,这里的语义信息包括像素点的连通关系、顺序关系以及关键像素点,只有分析出这些语义信息,才能进一步生成电脑缝纫机所能使用的花样。

传统的图像识别技术主要通过分析图像区域中像素颜色或其他特征的切换实现对区域外轮廓的识别,对骨骼图像线条的识别能力有限。如何从骨骼图像中提取出形状信息(即骨骼图像的关键像素点和关键像素点的顺序关系),目前缺乏有效的方法。



技术实现要素:

本发明提供一种提取骨骼图像的形状信息的方法及装置,以解决如何从骨骼图像中提取出形状信息的问题。

第一方面,本发明提供一种提取骨骼图像的形状信息的方法,包括:

s1、从骨骼图像对应的轨迹树的根节点开始遍历,进行节点压栈、出栈后,确定当前节点是否是树杈节点或叶节点,所述根节点是所述轨迹树的起始节点,所述树杈节点是有至少3个邻域存在相邻节点的节点,所述叶节点 是只有一个邻域有相邻节点的节点,所述节点为骨骼图像中任意的带值像素点;

s2、若是树杈节点,根据树杈节点对应的第一预设条件确定所述树杈节点是否是关键节点;若是叶节点,则根据叶节点对应的第二预设条件确定所述叶节点是否是关键节点;

s3、若是关键节点,则遍历寻找出所述关键节点与所述关键节点相邻的前一个关键节点之间的所有节点中的拐点,所述拐点是到所述关键节点与所述关键节点相邻的关键节点之间的线段的距离大于第一预设阈值的节点;

s4、将所述当前节点对应的所有子节点依次压入栈区,而后依次出栈,根据最后出栈的节点继续s1-s3的遍历过程,直到所有节点遍历完成,最终得到骨骼图像的形状信息,所述形状信息包括遍历到的关键节点和拐点以及各个关键节点和拐点的先后顺序关系,所述子节点是节点的邻域中的带值像素点。

进一步地,所述从骨骼图像对应的轨迹树的根节点开始遍历之前,还包括:

扫描骨骼图像获取至少一棵轨迹树;

所述从骨骼图像对应的轨迹树的根节点开始遍历,包括:

按照轨迹树的生成顺序从每一棵轨迹树的根节点开始遍历。

进一步地,所述根据树杈节点对应的第一预设条件确定所述树杈节点是否是关键节点,包括:

确定从所述树杈节点延伸出的长度超过第二预设阈值的树枝是否超过2个,是则确定所述树杈节点为关键节点。

进一步地,所述根据叶节点对应的第二预设条件确定所述叶节点是否是关键节点,包括:

确定所述叶节点的叶深度是否超过第三预设阈值,是则确定所述叶节点为关键节点;否则确定所述叶节点到前一个相邻关键节点的距离是否大于第四预设阈值,是则寻找所述叶节点所在的树杈节点,若所述叶节点到所述树杈节点的距离是所述树杈节点的所有树枝长度中最大的,则确定所述叶节点为关键节点,其中,所述叶深度是从叶节点向上回溯直到遇到树杈节点之间所经过的距离,所述树枝长度是从树枝所在树杈节点到所述树枝上所有叶节 点的最大距离,所述树枝是从树杈节点上延伸出的各个节点组成的线。

进一步地,还包括:

在所有节点遍历完成后,按照遍历的先后顺序提取遍历到的关键节点和拐点。

第二方面,本发明提供一种提取骨骼图像的形状信息的装置,包括:

压栈出栈模块,用于从骨骼图像对应的轨迹树的根节点开始遍历,进行节点压栈、出栈;

第一确定模块,用于确定当前节点是否是树杈节点或叶节点,所述根节点是所述轨迹树的起始节点,所述树杈节点是有至少3个邻域存在相邻节点的节点,所述叶节点是只有一个邻域有相邻节点的节点,所述节点为骨骼图像中任意的带值像素点;

第二确定模块,用于在所述第一确定模块确定出是树杈节点时,根据树杈节点对应的第一预设条件确定所述树杈节点是否是关键节点;在所述第一确定模块确定出是叶节点时,则根据叶节点对应的第二预设条件确定所述叶节点是否是关键节点;

寻找模块,用于在所述第二确定模块确定出关键节点时,遍历寻找出所述关键节点与所述关键节点相邻的前一个关键节点之间的所有节点中的拐点,所述拐点是到所述关键节点与所述关键节点相邻的关键节点之间的线段的距离大于第一预设阈值的节点;

所述压栈出栈模块还用于将所述当前节点对应的所有子节点依次压入栈区,而后依次出栈,根据最后出栈的节点继续遍历过程,直到所有节点遍历完成,最终得到骨骼图像的形状信息,所述形状信息包括遍历到的关键节点和拐点以及各个关键节点和拐点的先后顺序关系,所述子节点是节点的邻域中的带值像素点。

进一步地,还包括:

获取模块,用于在所述压栈出栈模块从骨骼图像对应的轨迹树的根节点开始遍历之前,扫描骨骼图像获取至少一棵轨迹树;

所述压栈出栈模块具体用于:

按照轨迹树的生成顺序从每一棵轨迹树的根节点开始遍历。

进一步地,所述第二确定模块具体用于:

确定从所述树杈节点延伸出的长度超过第二预设阈值的树枝是否超过2个,是则确定所述树杈节点为关键节点。

进一步地,所述第二确定模块具体用于:

确定所述叶节点的叶深度是否超过第三预设阈值,是则确定所述叶节点为关键节点;否则确定所述叶节点到前一个相邻关键节点的距离是否大于第四预设阈值,是则寻找所述叶节点所在的树杈节点,若所述叶节点到所述树杈节点的距离是所述树杈节点的所有树枝长度中最大的,则确定所述叶节点为关键节点,其中,所述叶深度是从叶节点向上回溯直到遇到树杈节点之间所经过的距离,所述树枝长度是从树枝所在树杈节点到所述树枝上所有叶节点的最大距离,所述树枝是从树杈节点上延伸出的各个节点组成的线。

进一步地,还包括:

提取模块,用于在所有节点遍历完成后,按照遍历的先后顺序提取遍历到的关键节点和拐点。

本发明提供的提取骨骼图像的形状信息的方法及装置,通过从骨骼图像对应的轨迹树的根节点开始遍历,分别寻找树杈节点和叶节点,在寻找到树杈节点或叶节点时,根据各自对应的预设条件确定寻找到的树杈节点或叶节点是否是关键节点。若是关键节点,则遍历寻找出所述关键节点与所述关键节点相邻的前一个关键节点之间的所有节点中的拐点,然后将当前节点对应的所有子节点依次压入栈区,而后依次出栈,根据最后出栈的节点继续相同的遍历过程,直到所有节点遍历完成,最终得到骨骼图像的形状信息。从而可实现从骨骼图像中提取出构成骨骼图像的形状信息,进而缝纫机制版软件可根据提取的骨骼图像的形状信息还原出最相近的骨骼图像,进一步生成电脑缝纫机所能使用的花样。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提取骨骼图像的形状信息的方法实施例一的流程图;

图2为一实际缝品图像;

图3为图2所示图像对应的骨骼图像;

图4为遍历一棵轨迹树的流程图;

图5为提取图3所示骨骼图像的形状信息后的图像;

图6为本发明提取骨骼图像的形状信息的装置实施例一的结构示意图;

图7为本发明提取骨骼图像的形状信息的装置实施例二的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种提取骨骼图像的形状信息的方法及装置,可用于缝纫机制版软件中,可实现从骨骼图像中提取出构成骨骼图像的形状信息,骨骼图像的形状信息包括骨骼图像的关键像素点和关键像素点的顺序关系,进而缝纫机制版软件可根据提取的骨骼图像的形状信息还原出最相近的骨骼图像,进一步生成电脑缝纫机所能使用的花样。下面结合附图详细说明本发明提供的提取骨骼图像的形状信息的方法的过程。

图1为本发明提取骨骼图像的形状信息的方法实施例一的流程图,如图1所示,本实施例的方法可以包括:

s101、从骨骼图像对应的轨迹树的根节点开始遍历,进行节点压栈、出栈后,确定当前节点是否是树杈节点或叶节点,所述根节点是所述轨迹树的起始节点,所述树杈节点是有至少3个邻域存在相邻节点的节点,所述叶节点是只有一个邻域有相邻节点的节点,所述节点为骨骼图像中任意的带值像素点。

具体来说,本实施例中骨骼图像对应的轨迹树可以是一棵,也可以是多棵,在s101之前,还可以包括:

扫描骨骼图像获取至少一棵轨迹树,在获取的轨迹树是一棵时,直接接着执行s101,在获取的轨迹树是多棵时,按照轨迹树的生成顺序从每一棵轨 迹树的根节点开始遍历。

s102、若是树杈节点,根据树杈节点对应的第一预设条件确定所述树杈节点是否是关键节点;若是叶节点,则根据叶节点对应的第二预设条件确定所述叶节点是否是关键节点。

具体地,若寻找到树杈节点,确定从所述树杈节点延伸出的长度超过第二预设阈值的树枝是否超过2个,是则确定所述树杈节点为关键节点;

若寻找到叶节点,确定所述叶节点的叶深度是否超过第三预设阈值,是则确定所述叶节点为关键节点;否则确定所述叶节点到前一相邻关键节点的距离是否大于第四预设阈值,是则寻找所述叶节点所在的树杈节点,若所述叶节点到所述树杈节点的距离是所述树杈节点的所有树枝长度中最大的,则确定所述叶节点为关键节点,其中,所述叶深度是从叶节点向上回溯直到遇到树杈节点之间所经过的距离,所述树枝长度是从树枝所在树杈节点到所述树枝上所有叶节点的最大距离,所述树枝是从树杈节点上延伸出的各个节点组成的线,可以是曲线,也可以是直线。

s103、若是关键节点,则遍历寻找出所述关键节点与所述关键节点相邻的前一个关键节点之间的所有节点中的拐点,所述拐点是到所述关键节点与所述关键节点相邻的关键节点之间的线段的距离大于第一预设阈值的节点。

其中,若是首次寻找到关键节点,该关键节点没有与之相邻的关键节点,当然也就没有寻找拐点的步骤。具体地,在两个关键节点之间的节点中遍历寻找拐点,可以是找出到两个关键节点之间的线段的距离大于第一预设阈值的节点,还可以是采用如下的方法:

连接两个关键节点形成一条线段,求两个关键节点之间的所有点与该线段的距离,并找出最大距离,用最大距离与预设阈值相比,若最大距离大于预设阈值,则保留最大距离对应的节点,即为拐点,否则将两个关键节点之间的所有点全部舍去,接着以该最大距离对应的节点为界,把两个关键节点之间的所有点构成的曲线分为两部分,对这两部分重复使用该方法。最终找出两个关键节点之间的所有的拐点。上述该方法也称为道格拉斯.普克(douglaspeucker,简称dp:)算法,是一种寻找曲线中关键特征点的方法。

s104、将所述当前节点对应的所有子节点依次压入栈区,而后依次出栈,根据最后出栈的节点继续s102-s103的遍历过程,直到所有节点遍历完成, 最终得到骨骼图像的形状信息,所述形状信息包括遍历到的关键节点和拐点以及各个关键节点和拐点的先后顺序关系。

其中,任意节点有8个邻域,8个邻域中的带值像素点称为节点的子节点,节点的识别过程带有顺序性和唯一性,即一个节点只识别一次,因此两个节点不能互为子节点。

具体地,将当前节点对应的所有子节点依次压入栈区,而后依次出栈,当前节点时当前遍历到的节点,该节点可能是关键节点,也可能是普通节点,根据最后出栈的节点继续s101-s103的遍历过程,可保证遍历到所有的节点。所有节点遍历完成,最终得到骨骼图像的形状信息,进一步地,还可以包括:在所有节点遍历完成后,按照遍历的先后顺序提取遍历到的关键节点和拐点。即就是提取到骨骼图像的形状信息。进而缝纫机制版软件可根据提取的骨骼图像的形状信息还原出最相近的骨骼图像,进一步生成电脑缝纫机所能使用的花样。

本实施例提供的提取骨骼图像的形状信息的方法,通过从骨骼图像对应的轨迹树的根节点开始遍历,分别寻找树杈节点和叶节点,在寻找到树杈节点或叶节点时,根据各自对应的预设条件确定寻找到的树杈节点或叶节点是否是关键节点。若是关键节点,则遍历寻找出所述关键节点与所述关键节点相邻的前一个关键节点之间的所有节点中的拐点,然后将当前节点对应的所有子节点依次压入栈区,而后依次出栈,根据最后出栈的节点继续相同的遍历过程,直到所有节点遍历完成,最终得到骨骼图像的形状信息。从而可实现从骨骼图像中提取出构成骨骼图像的形状信息,进而缝纫机制版软件可根据提取的骨骼图像的形状信息还原出最相近的骨骼图像,进一步生成电脑缝纫机所能使用的花样。

下面采用一个具体的实施例,对图1所示方法实施例的技术方案进行详细说明。

图2为一实际缝品图像,以图2为例,对图2所示的缝品图像进行二值化处理后得到的二值化图像进行进一步的处理后得到图3所示的骨骼图像,如图3所示,图3为图2所示图像对应的骨骼图像。

首先,扫描骨骼图像获取至少一棵轨迹树,具体的获取至少一棵轨迹树的过程可以是:

1、初始化栈

2、扫描骨骼图像,找到第一个带值像素作为根节点,并压栈

3、while(栈非空)

{

(1)从栈弹出栈顶像素作为当前像素,并将该像素染色

(2)探测当前像素的所有邻域像素是否有效(带值且未染色),有效则压入栈区,并填充树的数据结构

}

4、重复2-3步,生成多棵轨迹树

接着,按照轨迹树的生成顺序从每一棵轨迹树的根节点开始遍历。图4为遍历一棵轨迹树的流程图,如图4所示,遍历一棵轨迹树的过程包括:

s201、从轨迹树的根节点开始遍历。

s202、节点压栈。

s203、判断栈是否非空,若否执行s204,若是执行s205。

s204、识别结束。

s205、节点出栈。

s206、确定当前节点是否是树杈节点,若是执行s207,若否执行s208。

s207、确定从该树杈节点延伸出的长度超过第二预设阈值的树枝是否超过2个,是则执行s210,否则执行s211。

s210、确定当前节点为关键节点。

s211、确定当前节点为普通节点。

s208、确定当前节点是否是叶节点,若是执行s209,若否执行s211。

s209、确定该叶节点的叶深度是否超过第三预设阈值,是则执行s210,否则执行s212。

s212、确定该叶节点到前一相邻关键节点的距离是否小于第四预设阈值,是则执行s211,否则执行s213。

s213、寻找该叶节点所在的树杈节点。

s214、若该叶节点到该树杈节点的距离是树杈节点的所有树枝长度中最大的,是则执行s210,否则执行s211。

在s210之后,接着执行s215、遍历寻找出关键节点与关键节点相邻的 前一个关键节点之间的所有节点中的拐点,并将拐点也设为关键节点。

s216、将当前节点对应的所有子节点依次压入栈区,而后依次出栈。

上述执行过程可以是通过缝纫机制版软件完成,图5为提取图3所示骨骼图像的形状信息后的图像,也就是识别后的图像,如图5所示,图5中的亮点均是提取出的关键节点,关键节点中包括拐点,按照关键节点和关键节点的顺序关系连点成线,最终就可还原出图像,因此可实现从骨骼图像中提取出构成骨骼图像的形状信息,进而缝纫机制版软件可根据提取的骨骼图像的形状信息还原出最相近的骨骼图像,进一步生成电脑缝纫机所能使用的花样。

图6为本发明提取骨骼图像的形状信息的装置实施例一的结构示意图,如图6所示,本实施例的装置可以包括:压栈出栈模块11、第一确定模块12、第二确定模块13和寻找模块14,其中,压栈出栈模块11用于从骨骼图像对应的轨迹树的根节点开始遍历,进行节点压栈、出栈。第一确定模块12用于确定当前节点是否是树杈节点或叶节点,所述根节点是所述轨迹树的起始节点,所述树杈节点是有至少3个邻域存在相邻节点的节点,所述叶节点是只有一个邻域有相邻节点的节点,所述节点为骨骼图像中任意的带值像素点。第二确定模块13用于在所述第一确定模块确定出是树杈节点时,根据树杈节点对应的第一预设条件确定所述树杈节点是否是关键节点;在所述第一确定模块确定出是叶节点时,则根据叶节点对应的第二预设条件确定所述叶节点是否是关键节点。寻找模块14用于在所述第二确定模块确定出关键节点时,遍历寻找出所述关键节点与所述关键节点相邻的前一个关键节点之间的所有节点中的拐点,所述拐点是到所述关键节点与所述关键节点相邻的关键节点之间的线段的距离大于第一预设阈值的节点。压栈出栈模块11还用于将所述当前节点对应的所有子节点依次压入栈区,而后依次出栈,根据最后出栈的节点继续遍历过程,直到所有节点遍历完成,最终得到骨骼图像的形状信息,所述形状信息包括遍历到的关键节点和拐点以及各个关键节点和拐点的先后顺序关系,所述子节点是节点的邻域中的带值像素点。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理类似,此处不再赘述。

图7为本发明提取骨骼图像的形状信息的装置实施例二的结构示意图, 如图7所示,本实施例的装置在图6所示装置结构的基础上,进一步地,还可以包括:获取模块15,该获取模块15用于在所述压栈出栈模块从骨骼图像对应的轨迹树的根节点开始遍历之前,扫描骨骼图像获取至少一棵轨迹树。压栈出栈模块11具体用于:按照轨迹树的生成顺序从每一棵轨迹树的根节点开始遍历。

进一步地,在实施例一和实施例二中,第二确定模块13具体用于:

确定从所述树杈节点延伸出的长度超过第二预设阈值的树枝是否超过2个,是则确定所述树杈节点为关键节点。

第二确定模块13具体用于:确定所述叶节点的叶深度是否超过第三预设阈值,是则确定所述叶节点为关键节点;否则确定所述叶节点到前一个相邻关键节点的距离是否大于第四预设阈值,是则寻找所述叶节点所在的树杈节点,若所述叶节点到所述树杈节点的距离是所述树杈节点的所有树枝长度中最大的,则确定所述叶节点为关键节点,其中,所述叶深度是从叶节点向上回溯直到遇到树杈节点之间所经过的距离,所述树枝长度是从树枝所在树杈节点到所述树枝上所有叶节点的最大距离,所述树枝是从树杈节点上延伸出的各个节点组成的线。

进一步地,在实施例一和实施例二中的提取骨骼图像的形状信息的装置还可以包括:提取模块,该提取模块用于在所有节点遍历完成后,按照遍历的先后顺序提取遍历到的关键节点和拐点。

图6或图7所示的提取骨骼图像的形状信息的装置,通过从骨骼图像对应的轨迹树的根节点开始遍历,分别寻找树杈节点和叶节点,在寻找到树杈节点或叶节点时,根据各自对应的预设条件确定寻找到的树杈节点或叶节点是否是关键节点。若是关键节点,则遍历寻找出所述关键节点与所述关键节点相邻的前一个关键节点之间的所有节点中的拐点,然后将当前节点对应的所有子节点依次压入栈区,而后依次出栈,根据最后出栈的节点继续相同的遍历过程,直到所有节点遍历完成,最终得到骨骼图像的形状信息。从而可实现从骨骼图像中提取出构成骨骼图像的形状信息,进而缝纫机制版软件可根据提取的骨骼图像的形状信息还原出最相近的骨骼图像,进一步生成电脑缝纫机所能使用的花样。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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