CN111179297B - 点云的多重轮廓生成方法、装置及系统 - Google Patents
点云的多重轮廓生成方法、装置及系统 Download PDFInfo
- Publication number
- CN111179297B CN111179297B CN201811348171.8A CN201811348171A CN111179297B CN 111179297 B CN111179297 B CN 111179297B CN 201811348171 A CN201811348171 A CN 201811348171A CN 111179297 B CN111179297 B CN 111179297B
- Authority
- CN
- China
- Prior art keywords
- point
- projection
- point set
- points
- subset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/181—Segmentation; Edge detection involving edge growing; involving edge linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种点云的多重轮廓生成方法、装置及系统,该方法,包括:将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集;根据预设的规则,将所述投影点集划分为n个分类子集;其中n为自然数;根据所述分类子集生成所述三维点集对应的分层轮廓。本发明实现了基于点云生成更高精度的分层轮廓,降低了轮廓生成的复杂度,同时提高了3D打印的效率。
Description
技术领域
本发明涉及3D打印技术领域,尤其涉及一种点云的多重轮廓生成方法、装置及系统。
背景技术
3D打印技术通常采用数字技术材料打印机来实现,已广泛应用于航空航天、高端汽车、医疗设备和建筑设计等领域中。
目前,3D打印通常先经过建模,再将建成的三维模型划分为逐层的截面,从而指导打印机逐层打印。3D打印采用“分层制造,层层叠加”的制造工艺,将三维点云划分为特征单一且互不重叠的层截面,实现轮廓拟合后进行打印。
但是,现有技术对零件模型截面的划分准确性差,轮廓的生成也繁琐复杂,使其打印成型的零件精度不高(包括尺寸精度、形状精度和表面粗糙度),甚至导致含有层叠、空洞等缺陷,从而使其应用大打折扣。
发明内容
本发明提供一种点云的多重轮廓生成方法、装置及系统,实现了基于点云生成更高精度的分层轮廓,降低了轮廓生成的复杂度,同时提高了3D打印的效率。
第一方面,本发明实施例提供一种基于点云的多重轮廓生成方法,包括:
将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集;
根据预设的规则,将所述投影点集划分为n个分类子集;其中n为自然数;
根据所述分类子集生成所述三维点集对应的分层轮廓。
在一种可能的设计中,在将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集之前,还包括:
通过所述切平面将三维点集P分割为第一点集P1和第二点集P2;
在所述三维点集P中选取任意一点p;
判断点p所属的点集,若点p属于第一点集P1,则从所述第二点集P2中查找所有与点p的距离不大于预设阈值R的点;若点p属于第二点集P2,则从所述第一点集P1中查找所有与点p的距离不大于预设阈值R的点;其中,找到的所有与点p的距离不大于预设阈值R的点的集合构成所述点p的柱领域NR(p)。
在一种可能的设计中,将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集,包括:
若所述点p的柱领域NR(p)为空集,则直接将所述点p垂直投影到所述切平面上,得到所述点p在所述切平面上的投影点;
若所述点p的柱领域NR(p)为非空集,则从柱领域NR(p)中选取出与所述点p的欧式距离最短的点p’,得到所述点p与所述点p’构成的点对;将所述点对与所述切平面的交点作为所述点p在所述切平面上的投影点;
去除重复的投影点c;
将去除重复的投影点所构成的集合作为所述投影点集。
在一种可能的设计中,根据预设的规则,将所述投影点集划分为n个分类子集,包括:
判断投影点集是否为空集;
若投影点集为空集,则结束流程;
若投影点集为非空集,则从所述投影点集中任取一个投影点q,将所述投影点q并入子集D中,并将所述投影点q从所述投影点集中删除,得到更新后的投影点集;
判断所述更新后的投影点集中是否存在与子集D的距离小于预设阈值r的投影点;
若存在与子集D的距离小于预设阈值r的投影点,则将找到的所有投影点的集合记为E;将集合E和子集D的并集作为一个分类子集;
若不存在与子集D的距离小于预设阈值r的投影点,则将子集D作为一个分类子集。
在一种可能的设计中,在将集合E和子集D的并集作为一个分类子集之后,还包括:
在投影点集中去除集合E中包含的投影点,得到更新后的投影点集;
若更新后的投影点集为非空集,则继续对更新后的投影点集进行分类子集划分,直到所述更新后的投影点集为空集。
在一种可能的设计中,根据所述分类子集生成所述三维点集对应的分层轮廓,包括:
获取每个分类子集对应的轮廓,其中,每个分类子集对应一个唯一的轮廓;
根据所有分类子集对应的轮廓,生成所述三维点集对应的分层轮廓。
在一种可能的设计中,所述获取每个分类子集对应的轮廓,包括:
从分类子集中获取横坐标值最小的点b1;
将所述分类子集中的点进行坐标变换,得到变换后的点坐标;
从点b1开始,根据预设的移动坐标框架逐次寻找下一个轮廓点,直到找到的轮廓点为b1时结束,得到一个从b1点开始,到b1点结束的闭合轮廓。
第二方面,本发明实施例提供一种基于点云的多重轮廓生成装置,包括:
投影模块,用于将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集;
划分模块,用于根据预设的规则,将所述投影点集划分为n个分类子集;其中n为自然数;
生成模块,用于根据所述分类子集生成所述三维点集对应的分层轮廓。
在一种可能的设计中,还包括:
分割模块,用于通过所述切平面将三维点集P分割为第一点集P1和第二点集P2;
选取模块,用于在所述三维点集P中选取任意一点p;
查找模块,用于判断点p所属的点集,若点p属于第一点集P1,则从所述第二点集P2中查找所有与点p的距离不大于预设阈值R的点;若点p属于第二点集P2,则从所述第一点集P1中查找所有与点p的距离不大于预设阈值R的点;其中,找到的所有与点p的距离不大于预设阈值R的点的集合构成所述点p的柱领域NR(p)。
在一种可能的设计中,所述投影模块,具体用于:
若所述点p的柱领域NR(p)为空集,则直接将所述点p垂直投影到所述切平面上,得到所述点p在所述切平面上的投影点;
若所述点p的柱领域NR(p)为非空集,则从柱领域NR(p)中选取出与所述点p的欧式距离最短的点p’,得到所述点p与所述点p’构成的点对;将所述点对与所述切平面的交点作为所述点p在所述切平面上的投影点;
去除重复的投影点c;
将去除重复的投影点所构成的集合作为所述投影点集。
在一种可能的设计中,所述划分模块,具体用于:
判断投影点集是否为空集;
若投影点集为空集,则结束流程;
若投影点集为非空集,则从所述投影点集中任取一个投影点q,将所述投影点q并入子集D中,并将所述投影点q从所述投影点集中删除,得到更新后的投影点集;
判断所述更新后的投影点集中是否存在与子集D的距离小于预设阈值r的投影点;
若存在与子集D的距离小于预设阈值r的投影点,则将找到的所有投影点的集合记为E;将集合E和子集D的并集作为一个分类子集;
若不存在与子集D的距离小于预设阈值r的投影点,则将子集D作为一个分类子集。
在一种可能的设计中,在将集合E和子集D的并集作为一个分类子集之后,还包括:
在投影点集中去除集合E中包含的投影点,得到更新后的投影点集;
若更新后的投影点集为非空集,则继续对更新后的投影点集进行分类子集划分,直到所述更新后的投影点集为空集。
在一种可能的设计中,所述生成模块,具体用于:
获取每个分类子集对应的轮廓,其中,每个分类子集对应一个唯一的轮廓;
根据所有分类子集对应的轮廓,生成所述三维点集对应的分层轮廓。
在一种可能的设计中,获取每个分类子集对应的轮廓,包括:
从分类子集中获取横坐标值最小的点b1;
将所述分类子集中的点进行坐标变换,得到变换后的点坐标;
从点b1开始,根据预设的移动坐标框架逐次寻找下一个轮廓点,直到找到的轮廓点为b1时结束,得到一个从b1点开始,到b1点结束的闭合轮廓。
第三方面,本发明实施例提供一种基于点云的多重轮廓生成系统,包括:存储器和处理器,存储器中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的点云多重轮廓生成方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一项所述的点云多重轮廓生成方法。
本发明提供一种点云的多重轮廓生成方法、装置及系统,该方法通过将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集;根据预设的规则,将所述投影点集划分为n个分类子集;其中n为自然数;根据所述分类子集生成所述三维点集对应的分层轮廓。本发明实现了基于点云生成更高精度的分层轮廓,降低了轮廓生成的复杂度,同时提高了3D打印的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1(a)为本发明一应用场景的示意图一;
图1(b)为本发明一应用场景的示意图二;
图2为本发明实施例一提供的基于点云的多重轮廓生成方法的流程图;
图3为本发明实施例一提供的某一层三维点云生成的轮廓图;
图4为本发明实施例一提供的三维点云投影后的投影散点图;
图5为本发明实施例一提供的基于点云的多重轮廓生成方法的部分流程图;
图6为本发明实施例一提供的基于点云的多重轮廓生成方法的另一部分流程图;
图7为本发明实施例二提供的基于点云的多重轮廓生成方法的流程图;
图8为本发明实施例三提供的基于点云的多重轮廓生成装置的结构示意图;
图9为本发明实施例四提供的基于点云的多重轮廓生成装置的结构示意图;
图10为本发明实施例五提供的基于点云的多重轮廓生成系统的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1(a)为本发明一应用场景的示意图一,图1(b)为本发明一应用场景的示意图二。参见图1(a)、图1(b),首先采用3D打印技术打印一只猫,点云的多重轮廓生成系统首先处理获取猫的三维点集模型(如图1(a)所示),进而生成该只猫的层轮廓(如图1(b)所示),并通过逐层打印的方式构造出该只猫,其中,该三维点集模型由一万个散点构成。层轮廓生成是指将一层内的三维点集数据投影到切平面上,依次选择一部分或者全部的投影点,按顺序连接选择的投影点得到一个或多个多边形后,将这些多边形作为该层的轮廓。3D打印中生成的层轮廓的精确度直接决定着打印产品的精度,故层轮廓的生成尤为关键。本实施例可以实现基于三维点集生成更高精度的分层轮廓,降低了轮廓生成的复杂度,同时提高了3D打印的效率。
图2为本发明实施例一提供的基于点云的多重轮廓生成方法的流程图,如图2所示,本实施例中的方法可以包括:
S101、将三维点集中的点投影到切平面上,得到位于切平面上的投影点集;
本实施例中,将猫的三维点集模型(如图1(a)所示)建立在合适的三维坐标系中,在一种可选的实施例中,将坐标系的Z轴作为3D打印的方向,垂直于Z轴的平面即为切平面。三维点集模型采用恒定层厚度均匀地分割,例如取层厚度为0.02个单位长度,将该三维点集模型均匀分割为40层,选取其中一层三维点集中的点投影到切平面上,得到位于该切平面上的投影点集。
具体地,用切平面将该层三维点集分割为H+和H-两个部分,从该层三维点集P中任取一点p,在H+和H-两个部分中找到所有与点p的距离不大于预设阈值R的点的集合构成该点p的柱领域NR(p)。若点p的柱领域NR(p)为空集,则直接将点p垂直投影到切平面上,得到点p在切平面上的投影点;若点p的柱领域NR(p)为非空集,则从柱领域NR(p)中选取出与点p的欧式距离最短的点p’,得到点p与点p’构成的点对;将点对与切平面的交点作为点p在切平面上的投影点;去除重复的投影点c;将去除重复的投影点所构成的集合作为投影点集(参考图5)。
由该层三维点集P得到切平面上的投影点集Q的流程如下所示:
步骤A1:初始化投影点集三维点集P=H+∪H-。
步骤A2:任取点p∈P,计算NR(p),判断NR(p)是否为若为/>则转步骤A3,若不为/>则执行步骤A4。
步骤A3:将点p直接垂直投影到切平面,得到投影点q。更新投影点集Q=Q∪{q},P=P/{p};执行步骤A5。
步骤A4:记NR(p)={p1,p2,...p’,pn},取NR(p)中与点p的欧式距离最短的点p’,点p与点p’构成的点对,计算该点对与切片面的交点,得到投影点q。更新投影点集Q=Q∪{q},P=P/{p};执行步骤A5。
步骤A5:若则转(5);若/>则执行步骤A2。
步骤A6:删除投影点集Q中重复的点,输出投影后的投影点集Q。
在一种中可选的实施例中,将三维点集P中两点间的平面距离定义为:
其中,对于点p的柱领域为:
NR(p)={q∈H-|Dxy(p,p′)≤R},P∈H+
或者
NR(p)={q∈H+|Dxy(p,p′)≤R},P∈H-
例如,首先切平面将该层三维点云分割成H+和H-两个部分,对于H+的点p=(x,y,z),记H-为点集{p1,p2,......pn}。得到点p的投影点的步骤如下:
步骤B1:设定阈值R=0.025。先计算点p到pi(i=1,2,……,n)的平面距离,其中xi,yi分别为pi的横纵坐标。
步骤B2:将Dxy(p,pi)与R进行比较。记所有满足Dxy(p,pi)≤R的点构成的集合为NR(p),若NR(p)为空集,则点p的投影点q=(x,y,h),其中h为切平面的Z坐标。
步骤B3:若NR(p)非空,记NR(p)={p′1,p′2,...,p′m},m≤n。计算点p到p′i,(i=1,2,…,m)的空间距离其中xi,yi,zi为p′i的坐标。选取使得d(p,p′i)最小的点p′i,即p′=p′i。
步骤B4:求点p和点p′i连接的线段与切平面构成的交点。得到p的投影点q=(X,Y,h),其中,
同理对于H-部分中的点,采取类似的方法的到它对应的投影点。在一种可选的实施例中,当出现不同的点在切平面上的投影点是同一个点时,此时不用重复计算,保留一次即可。将去除重复的投影点所构成的集合作为投影点集Q,如图3所示,空心点为经过复合投影后得到的投影点,其中实心点是直接垂直投影的结果。可见使用本发明可获得较精准的投影点,为之后的生成轮廓节省了计算量,降低了复杂度。
S102、根据预设的规则,将投影点集划分为n个分类子集。
具体地,判断投影点集是否为空集;若投影点集为空集,则结束流程;若投影点集为非空集,则从投影点集中任取一个投影点q,将投影点q并入子集D中,并将投影点q从投影点集中删除,得到更新后的投影点集;判断更新后的投影点集中是否存在与子集D的距离小于预设阈值r的投影点;若存在与子集D的距离小于预设阈值r的投影点,则将找到的所有投影点的集合记为E;将集合E和子集D的并集作为一个分类子集;若不存在与子集D的距离小于预设阈值r的投影点,则将子集D作为一个分类子集。其中,在一种可能的实施例中,在将集合E和子集D的并集作为一个分类子集之后,还包括:在投影点集中去除集合E中包含的投影点,得到更新后的投影点集;若更新后的投影点集为非空集,则继续对更新后的投影点集进行分类子集划分,直到更新后的投影点集为空集。(参考图6)
基于三维点集P得到切平面对应的投影点集Q,根据预设的规则将该投影点集Q划分为n个分类子集,在一种可选点的实施例中,点p和投影点集Q={q1,q2,...,qn},定义它们的距离为:
定义三维点集P={p1,p2,...,pm}和投影点集Q={q1,q2,...,qn}的近距离为:
为了使得每个子集有且仅有一个轮廓,这些子集之间满足以下两个条件:条件一:任意两个子集的距离大于给定的阈值。条件二:任意一个子集中,任取两个点,可通过该子集中的其它点和一些长度小于阈值的线段连通。
切平面上点集的分类流程如下所示:
步骤C1:初始化分类子集分类子集个数index=1,其中index为自然数。
步骤C2:输入得到的投影点集Q,判断Q是否为空集。若不是空集,执行步骤C3;否则执行步骤C7。
步骤C3:任取一点q∈Q,记子集D={q},更新投影点集Q=Q/{q}。
步骤C4:判断投影点集Q中是否存在与子集D的距离小于阈值r的点。若存在,记这些点构成的点集为E,执行步骤C5;否则执行步骤C6。
步骤5:更新分类子集Cindex=Cindex∪D,D=E,Q=Q/E。执行步骤C4。
步骤C6:更新分类子集Cindex=Cindex∪D。输出一个分类子集Cindex。分类子集个数index=index+1。返回执行步骤C2。
步骤C7:得到了共计index-1个分类子集。
在一种可选的实施例中,每一次操作先将增加的投影点储存在子集D里,并不立刻并入到分类子集Cindex中。由于投影点集Q中已经不存在与分类子集Cindex距离小于阈值r的投影点,所以只需计算投影点集Q中到集合E的距离小于阈值r的投影点,就可以得到集合E。如果每一次操作立即将增加的投影点并入到分类子集Cindex中,会增加一些不必要的计算量。本发明很大限度的降低了生成轮廓的复杂度。
例如,记投影后得到的投影点集Q={q1,q2,...,qn},由于点都在切平面上,只考虑横纵坐标,即qi=(xi,yi),i=1,2,…,n。得到其中一个分类子集的步骤如下所示:
步骤D1:设定阈值r=0.07。任意选取一点qj=(xj,yj)作为起始点,分类子集Cindex={qj},删除投影点集Q中的点qj,计算Q中其它点到点qj的距离
步骤D2:子集D为空集,若d(qj,qi)≤r,则D=D∪{qi},并删除Q中的点qj。计算Q中其它点到子集D中所有点的距离。
步骤D3:集合E为空集,若Q中某一个点到子集D中所有点的距离的最小值小于阈值r,则E=E∪{qj},并删除Q中的点qi。
步骤D4:若E为空集,令Cindex=Cindex∪D则得到一个分类子集。否则令Cindex=Cindex∪D,D=E,E清空,返回步骤D3。
在一种可选的实施例中,上述操作将会自动区分出多重轮廓。如图4所示,在猫的耳朵这一部分有两个轮廓的某一层的会自动分类,并生成了两个闭合轮廓(如图1(b)中所示)。
S103、根据分类子集生成三维点集对应的分层轮廓。
具体地,获取每个分类子集对应的轮廓,其中,每个分类子集对应一个唯一的轮廓;根据所有分类子集对应的轮廓,生成三维点集对应的分层轮廓。其中,在一种可选的实施例中,获取每个分类子集对应的轮廓,包括:从分类子集中获取横坐标值最小的点b1;将分类子集中的点进行坐标变换,得到变换后的点坐标;从点b1开始,根据预设的移动坐标框架逐次寻找下一个轮廓点,直到找到的轮廓点为b1时结束,得到一个从b1点开始,到b1点结束的闭合轮廓。
在一种可选的实施例中,对一个分类子集生成单个轮廓,例如,记b0=(0,0),选取该分类子集中横坐标最小的点为b1,即b1=b1。为了确定下一个轮廓点bj,首先对该分类子集的点进行坐标变换,移动坐标框架为:{bi-1,e1,e2}
其中e1为向量e2为e1和打印方向(即z轴)的外积,
即:e2=e1×Z
对应的坐标变化公式为:
其中(x,y),(X,Y)分别是点坐标变换前后的坐标,(xj,yj)为第i个轮廓点bi在原始坐标框架的坐标。完成坐标变换后,计算模长最短的K个点中(例如包括n1,n2,...,nj,nk),每个点与原点的连线和x轴的负半轴的夹角最小的点(例如获得点ni),其中夹角的计算公式如下所示:
如果存在点nj属于第一、二象限;
如果存在点nj属于第三、四象限;重复操作直到找到的某一个轮廓点为b1,即b1=b1时停止,此时得到一个闭合的轮廓。如图3所示多边形为该层的轮廓。
本实施例,通过将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集;根据预设的规则,将所述投影点集划分为n个分类子集;其中n为自然数;根据所述分类子集生成所述三维点集对应的分层轮廓。本发明实现了基于点云生成更高精度的分层轮廓,降低了轮廓生成的复杂度,同时提高了3D打印的效率。
图7为本发明实施例二提供的基于点云的多重轮廓生成方法的流程图,如图7所示,本实施例中包括的方法可以包括:
S201、通过切平面将三维点集P分割为第一点集P1和第二点集P2;
S202、在三维点集P中选取任意一点p;
S203、判断点p所属的点集,若点p属于第一点集P1,则从第二点集P2中查找所有与点p的距离不大于预设阈值R的点;若点p属于第二点集P2,则从第一点集P1中查找所有与点p的距离不大于预设阈值R的点;其中,找到的所有与点p的距离不大于预设阈值R的点的集合构成点p的柱领域NR(p)。
S204、将三维点集中的点投影到切平面上,得到位于切平面上的投影点集。
S205、根据预设的规则,将投影点集划分为n个分类子集;其中n为自然数。
S206、根据分类子集生成三维点集对应的分层轮廓。
本实施例中,步骤S204~步骤S206的具体实现过程和技术原理请参见图2所示的方法中步骤S101~步骤S103中的相关描述,此处不再赘述。
S201、通过切平面将三维点集P分割为第一点集P1和第二点集P2;
本实施例中,如图1(a)中,切平面将该只猫的三维点集模型分割为上下两部分,分别记作H+和H-。在一种可选的实施例中,选取上面部分作为第一点集P1,选取下面部分作为第二点集P2。
S202、在三维点集P中选取任意一点p;
本实施例中,在三维点集P中选取任意一点p,在一种可选的实施例中,从第一点集P1中选取任意一点p,或者从第二点集P2中选取任意一点p。
S203、判断点p所属的点集,若点p属于第一点集P1,则从第二点集P2中查找所有与点p的距离不大于预设阈值R的点;若点p属于第二点集P2,则从第一点集P1中查找所有与点p的距离不大于预设阈值R的点;其中,找到的所有与点p的距离不大于预设阈值R的点的集合构成点p的柱领域NR(p)。
本实施例中,如图1(a)中,切平面将该只猫的三维点集模型分割为上下两部分,分别记作H+和H-。在一种可选的实施例中,H+部分包含的三维点集记作第一点集P1,H-部分包含的三维点集记作第二点集P2。判断点p所属的点集,若点p属于第一点集P1,则从H-部分中查找所有与点p的距离不大于预设阈值R(例如R=0.025)的点;若点p属于第二点集P2,则从H+部分中查找所有与点p的距离不大于预设阈值R(例如R=0.025)的点。将找到的所有与点p的距离不大于预设阈值R的点的集合构成点p的柱领域NR(p)。在一种中可选的实施例中,将三维点集P中两点间的平面距离定义为:
其中,对于点p的柱领域为:
NR(p)={q∈H-|Dxy(p,p′)≤R},P∈H+
或者
NR(p)=(q∈H+|Dxy(p,p′)≤R},P∈H-
本实施例,通过将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集;根据预设的规则,将所述投影点集划分为n个分类子集;其中n为自然数;根据所述分类子集生成所述三维点集对应的分层轮廓。本发明实现了基于点云生成更高精度的分层轮廓,降低了轮廓生成的复杂度,同时提高了3D打印的效率。
另外,本实施例中,点云的多重轮廓生成系统采用切平面将三维点集分割,获得任意选取的点的相关柱领域,通过判断该柱领域是否为空集来确定投影点。实现了精细分割,克服了投影点遗漏、偏移等缺点,从而实现基于点云生成更高精度的分层轮廓,降低了轮廓生成的复杂度,同时提高了3D打印的效率。
图8为本发明实施例三提供的基于点云的多重轮廓生成装置的结构示意图,如图8所示,本实施例的基于点云的多重轮廓生成装置可以包括:
投影模块31,用于将三维点集中的点投影到切平面上,得到位于切平面上的投影点集;
划分模块32,用于根据预设的规则,将投影点集划分为n个分类子集;其中n为自然数;
生成模块33,用于根据分类子集生成三维点集对应的分层轮廓。
在一种可能的设计中,投影模块31,具体用于:
若点p的柱领域NR(p)为空集,则直接将点p垂直投影到切平面上,得到点p在切平面上的投影点;
若点p的柱领域NR(p)为非空集,则从柱领域NR(p)中选取出与点p的欧式距离最短的点p’,得到点p与点p’构成的点对;将点对与切平面的交点作为点p在切平面上的投影点;
去除重复的投影点c;
将去除重复的投影点所构成的集合作为投影点集。
在一种可能的设计中,划分模块32,具体用于:
判断投影点集是否为空集;
若投影点集为空集,则结束流程;
若投影点集为非空集,则从投影点集中任取一个投影点q,将投影点q并入子集D中,并将投影点q从投影点集中删除,得到更新后的投影点集;
判断更新后的投影点集中是否存在与子集D的距离小于预设阈值r的投影点;
若存在与子集D的距离小于预设阈值r的投影点,则将找到的所有投影点的集合记为E;将集合E和子集D的并集作为一个分类子集;
若不存在与子集D的距离小于预设阈值r的投影点,则将子集D作为一个分类子集。
在一种可能的设计中,在将集合E和子集D的并集作为一个分类子集之后,还包括:
在投影点集中去除集合E中包含的投影点,得到更新后的投影点集;
若更新后的投影点集为非空集,则继续对更新后的投影点集进行分类子集划分,直到更新后的投影点集为空集。
在一种可能的设计中,生成模块33,具体用于:
获取每个分类子集对应的轮廓,其中,每个分类子集对应一个唯一的轮廓;
根据所有分类子集对应的轮廓,生成三维点集对应的分层轮廓。
在一种可能的设计中,获取每个分类子集对应的轮廓,包括:
从分类子集中获取横坐标值最小的点b1;
将分类子集中的点进行坐标变换,得到变换后的点坐标;
从点b1开始,根据预设的移动坐标框架逐次寻找下一个轮廓点,直到找到的轮廓点为b1时结束,得到一个从b1点开始,到b1点结束的闭合轮廓。
本实施例,通过将三维点集中的点投影到切平面上,得到位于切平面上的投影点集;根据预设的规则,将投影点集划分为n个分类子集;其中n为自然数;根据分类子集生成三维点集对应的分层轮廓。本发明实现了基于点云生成更高精度的分层轮廓,降低了轮廓生成的复杂度,同时提高了3D打印的效率。
本实施例的基于点云的多重轮廓生成装置,可以执行图2所示方法中的技术方案,其具体实现过程和技术原理参见图2所示方法中的相关描述,此处不再赘述。
图9为本发明实施例四提供的基于点云的多重轮廓生成装置的结构示意图,如图9所示,本实施例的基于点云的多重轮廓生成装置在图8所示的装置的基础上还可以包括:
分割模块34,用于通过切平面将三维点集P分割为第一点集P1和第二点集P2;
选取模块35,用于在三维点集P中选取任意一点p;
查找模块36,用于判断点p所属的点集,若点p属于第一点集P1,则从第二点集P2中查找所有与点p的距离不大于预设阈值R的点;若点p属于第二点集P2,则从第一点集P1中查找所有与点p的距离不大于预设阈值R的点;其中,找到的所有与点p的距离不大于预设阈值R的点的集合构成点p的柱领域NR(p)。
本实施例,通过将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集;根据预设的规则,将所述投影点集划分为n个分类子集;其中n为自然数;根据所述分类子集生成所述三维点集对应的分层轮廓。本发明实现了基于点云生成更高精度的分层轮廓,降低了轮廓生成的复杂度,同时提高了3D打印的效率。
本实施例的基于点云的多重轮廓生成装置,可以执行图2、图7所示方法中的技术方案,其具体实现过程和技术原理参见图2、图7所示方法中的相关描述,此处不再赘述。
图10为本发明实施例五提供的基于点云的多重轮廓生成系统的结构示意图,如图10所示,本实施例的基于点云的多重轮廓生成系统40可以包括:处理器41和存储器42。
存储器42,用于存储计算机程序(如实现上述点云的多重轮廓生成方法的应用程序、功能模块等)、计算机指令等;
上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器42中。并且上述的计算机程序、计算机指令、数据等可以被处理器41调用。
处理器41,用于执行存储器42存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。
具体可以参见前面方法实施例中的相关描述。
处理器41和存储器42可以是独立结构,也可以是集成在一起的集成结构。当处理器41和存储器42是独立结构时,存储器42、处理器41可以通过总线43耦合连接。
本实施例的基于点云的多重轮廓生成系统可以执行图2、图8所示方法中的技术方案,其具体实现过程和技术原理参见图2、图8所示方法中的相关描述,此处不再赘述。
此外,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当用户设备的至少一个处理器执行该计算机执行指令时,用户设备执行上述各种可能的方法。
其中,计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。
本申请还提供一种程序产品,程序产品包括计算机程序,计算机程序存储在可读存储介质中,服务器的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得服务器实施上述本发明实施例任一的点云的多重轮廓生成方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种基于点云的多重轮廓生成方法,其特征在于,包括:
将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集;
根据预设的规则,将所述投影点集划分为n个分类子集;其中n为自然数;
根据所述分类子集生成所述三维点集对应的分层轮廓;
在将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集之前,还包括:
通过所述切平面将三维点集P分割为第一点集P1和第二点集P2;
在所述三维点集P中选取任意一点p;
判断点p所属的点集,若点p属于第一点集P1,则从所述第二点集P2中查找所有与点p的距离不大于预设阈值R的点;若点p属于第二点集P2,则从所述第一点集P1中查找所有与点p的距离不大于预设阈值R的点;其中,找到的所有与点p的距离不大于预设阈值R的点的集合构成所述点p的柱领域NR(p);
将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集,包括:
若所述点p的柱领域NR(p)为空集,则直接将所述点p垂直投影到所述切平面上,得到所述点p在所述切平面上的投影点;
若所述点p的柱领域NR(p)为非空集,则从柱领域NR(p)中选取出与所述点p的欧式距离最短的点p’,得到所述点p与所述点p’构成的点对;将所述点对与所述切平面的交点作为所述点p在所述切平面上的投影点;
去除重复的投影点c;
将去除重复的投影点所构成的集合作为所述投影点集。
2.根据权利要求1所述的方法,其特征在于,根据预设的规则,将所述投影点集划分为n个分类子集,包括:
判断投影点集是否为空集;
若投影点集为空集,则结束流程;
若投影点集为非空集,则从所述投影点集中任取一个投影点q,将所述投影点q并入子集D中,并将所述投影点q从所述投影点集中删除,得到更新后的投影点集;
判断所述更新后的投影点集中是否存在与子集D的距离小于预设阈值r的投影点;
若存在与子集D的距离小于预设阈值r的投影点,则将找到的所有投影点的集合记为E;将集合E和子集D的并集作为一个分类子集;
若不存在与子集D的距离小于预设阈值r的投影点,则将子集D作为一个分类子集。
3.根据权利要求2所述的方法,其特征在于,在将集合E和子集D的并集作为一个分类子集之后,还包括:
在投影点集中去除集合E中包含的投影点,得到更新后的投影点集;
若更新后的投影点集为非空集,则继续对更新后的投影点集进行分类子集划分,直到所述更新后的投影点集为空集。
4.根据权利要求1-3中任一项所述的方法,其特征在于,根据所述分类子集生成所述三维点集对应的分层轮廓,包括:
获取每个分类子集对应的轮廓,其中,每个分类子集对应一个唯一的轮廓;
根据所有分类子集对应的轮廓,生成所述三维点集对应的分层轮廓。
5.根据权利要求4所述的方法,其特征在于,获取每个分类子集对应的轮廓,包括:
从分类子集中获取横坐标值最小的点b1;
将所述分类子集中的点进行坐标变换,得到变换后的点坐标;
从点b1开始,根据预设的移动坐标框架逐次寻找下一个轮廓点,直到找到的轮廓点为b1时结束,得到一个从b1点开始,到b1点结束的闭合轮廓。
6.一种基于点云的多重轮廓生成装置,其特征在于,包括:
投影模块,用于将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集;
划分模块,用于根据预设的规则,将所述投影点集划分为n个分类子集;其中n为自然数;
生成模块,用于根据所述分类子集生成所述三维点集对应的分层轮廓;
所述装置还包括:
分割模块,用于投影模块在将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集之前,通过所述切平面将三维点集P分割为第一点集P1和第二点集P2;
选取模块,用于在所述三维点集P中选取任意一点p;
查找模块,用于判断点p所属的点集,若点p属于第一点集P1,则从所述第二点集P2中查找所有与点p的距离不大于预设阈值R的点;若点p属于第二点集P2,则从所述第一点集P1中查找所有与点p的距离不大于预设阈值R的点;其中,找到的所有与点p的距离不大于预设阈值R的点的集合构成所述点p的柱领域NR(p);
所述投影模块,在将三维点集中的点投影到切平面上,得到位于所述切平面上的投影点集时,具体用于:
若所述点p的柱领域N_R(p)为空集,则直接将所述点p垂直投影到所述切平面上,得到所述点p在所述切平面上的投影点;
若所述点p的柱领域N_R(p)为非空集,则从柱领域N_R(p)中选取出与所述点p的欧式距离最短的点p’,得到所述点p与所述点p’构成的点对;将所述点对与所述切平面的交点作为所述点p在所述切平面上的投影点;
去除重复的投影点c;
将去除重复的投影点所构成的集合作为所述投影点集。
7.一种基于点云的多重轮廓生成系统,其特征在于,包括:存储器和处理器,存储器中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-5任一项所述的基于点云的多重轮廓生成方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5任一项所述的基于点云的多重轮廓生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811348171.8A CN111179297B (zh) | 2018-11-13 | 2018-11-13 | 点云的多重轮廓生成方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811348171.8A CN111179297B (zh) | 2018-11-13 | 2018-11-13 | 点云的多重轮廓生成方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111179297A CN111179297A (zh) | 2020-05-19 |
CN111179297B true CN111179297B (zh) | 2023-09-19 |
Family
ID=70649988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811348171.8A Active CN111179297B (zh) | 2018-11-13 | 2018-11-13 | 点云的多重轮廓生成方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111179297B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201513264D0 (en) * | 2015-07-28 | 2015-09-09 | Dexter Consulting Uk Ltd | Apparatus,methods,computer programs and non-transitory computer-readable storage media for generating a three-dimensional model of an object |
CN106056614A (zh) * | 2016-06-03 | 2016-10-26 | 武汉大学 | 一种地面激光点云数据的建筑物分割与轮廓线提取方法 |
CN107274423A (zh) * | 2017-05-26 | 2017-10-20 | 中北大学 | 一种基于协方差矩阵和投影映射的点云特征曲线提取方法 |
CN108416785A (zh) * | 2018-03-26 | 2018-08-17 | 北京进化者机器人科技有限公司 | 面向封闭空间的拓扑分割方法及装置 |
CN108491596A (zh) * | 2018-03-08 | 2018-09-04 | 大连理工大学 | 一种点云模型上的分层切片轮廓构造方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979244B2 (en) * | 2005-09-13 | 2011-07-12 | Siemens Corporation | Method and apparatus for aperture detection of 3D hearing aid shells |
-
2018
- 2018-11-13 CN CN201811348171.8A patent/CN111179297B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201513264D0 (en) * | 2015-07-28 | 2015-09-09 | Dexter Consulting Uk Ltd | Apparatus,methods,computer programs and non-transitory computer-readable storage media for generating a three-dimensional model of an object |
CN106056614A (zh) * | 2016-06-03 | 2016-10-26 | 武汉大学 | 一种地面激光点云数据的建筑物分割与轮廓线提取方法 |
CN107274423A (zh) * | 2017-05-26 | 2017-10-20 | 中北大学 | 一种基于协方差矩阵和投影映射的点云特征曲线提取方法 |
CN108491596A (zh) * | 2018-03-08 | 2018-09-04 | 大连理工大学 | 一种点云模型上的分层切片轮廓构造方法 |
CN108416785A (zh) * | 2018-03-26 | 2018-08-17 | 北京进化者机器人科技有限公司 | 面向封闭空间的拓扑分割方法及装置 |
Non-Patent Citations (1)
Title |
---|
An adaptive slicing approach to modelling cloud data for rapid prototyping;Y.F. Zhang等;《Journal of Materials Processing Technology》;第105-109页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111179297A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mescheder et al. | Occupancy networks: Learning 3d reconstruction in function space | |
JP7491685B2 (ja) | ニューラルネットワークのセット | |
CN111381919B (zh) | 形成用于推断可编辑特征树的数据集 | |
CN111382496B (zh) | 学习用于推断可编辑特征树的神经网络 | |
JP2020115336A (ja) | 3dモデル化オブジェクト推定のための機械学習 | |
CN109002562B (zh) | 一种仪器识别模型训练方法和装置及仪器识别方法和装置 | |
US20180032060A1 (en) | Creating a voxel representation of a three dimensional (3-d) object | |
CN110599506B (zh) | 一种复杂异形曲面机器人三维测量的点云分割方法 | |
CN107545025A (zh) | 利用形态学标准查询数据库 | |
CN108549692B (zh) | Spark框架下的稀疏多元逻辑回归模型对文本情感分类的方法 | |
RU2674326C2 (ru) | Способ формирования архитектуры нейросети для классификации объекта, заданного в виде облака точек, способ ее применения для обучения нейросети и поиска семантически схожих облаков точек | |
JP5969837B2 (ja) | 性能予測装置、性能予測方法、及びプログラム | |
KR102188732B1 (ko) | 기하학적 모멘트 매칭을 통한 구 위에서의 적대적 생성망을 이용하는 데이터 처리 장치 및 방법 | |
CA2966299C (en) | Method for immediate boolean operations using geometric facets | |
WO2017080135A1 (zh) | 一种面向3d打印的模型分解与排列方法 | |
Rios et al. | Scalability of learning tasks on 3D CAE models using point cloud autoencoders | |
Quadros et al. | Finite Element Mesh Sizing for Surfaces Using Skeleton. | |
CN112085837B (zh) | 一种基于几何形状和lstm神经网络的三维模型分类方法 | |
CN111179297B (zh) | 点云的多重轮廓生成方法、装置及系统 | |
CN110738726B (zh) | 一种基于八叉树的机器人视觉引导三维物体重建方法 | |
CN107784656A (zh) | 一种基于几何要素的零件点云分割方法 | |
CN114882496B (zh) | 基于深度图像的三维部件相似度计算方法 | |
CN114202662B (zh) | 结合相邻刀轨横向几何特征的刀具特征点识别方法及设备 | |
CN111858785A (zh) | 地图离散型要素的匹配方法、装置、系统及存储介质 | |
CN115511731A (zh) | 一种噪声处理方法和噪声处理设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |