一种基于投影的三维网格模型外轮廓提取方法及系统与流程

文档序号:32042209发布日期:2022-11-03 05:41阅读:345来源:国知局
一种基于投影的三维网格模型外轮廓提取方法及系统与流程

1.本发明涉及轮廓提取领域,特别是涉及一种基于投影的三维网格模型外轮廓提取方法及系统。


背景技术:

2.在离散网格cad造型设计,尤其是在精确制造的应用场景下,这类模型的设计往往受限修复体周边环境,需要关注设计体外轮廓线。比如义齿修复设计,关节件。在设计修复体的时候往往需要限制最外轮廓线的位置。另外在制造环节有些特殊工艺也有避免“倒凹”和可铣削性的要求。所以通过在设计过程中实时展示模型外轮廓线有工程意义。外轮廓线提取在图像和图形学中有类似应用。在图像中主要是基于图片的像素差异来提取轮廓;图形学中有视图中外轮廓线的应用,但是它是平面的随视图的变化而变化的。基于此,亟需一种不随视图的变化而变化,可以方便任意视角查看的三维网格模型外轮廓提取方法及系统。


技术实现要素:

3.本发明的目的是提供一种基于投影的三维网格模型外轮廓提取方法及系统。通过计算出某一视角下的三维模型外轮廓,并将该外轮廓在三维模型中标注,从而使得在cad造型设计过程中,模型外轮廓不随视角的变化而变化,可以方便任意视角查看。
4.为实现上述目的,本发明提供了如下方案:
5.一种基于投影的三维网格模型外轮廓提取方法,包括:
6.建立三维网格模型的半边数据结构;
7.对于所述半边数据结构中每条边,分别计算所述边两侧的三角形面片的法向量与指定方向的点积,将两个所述点积相乘,选取小于零的乘积对应的边为预处理边;
8.获取以所述指定方向为法向量的平面,并将所述预处理边投影到所述平面上,得到投影线段,获取所述投影线段与所述预处理边的一一对应关系;
9.根据所有所述投影线段的端点数据计算分布中心点,并以所述中心点为原点在所述平面上建立x、y坐标轴,所述x、y坐标轴将所述投影线段划分到四个区域;所述分布中心点被配置为所有所述投影线段以所述分布中心点为中心分布;
10.选取某一区域为第一区域,从所述第一区域中选取距离所述原点最远的投影线段为种子线段,将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测,对通过碰撞检测的投影线段进行求交,记录相交信息;所述其他投影线段为除所述种子线段之外的投影线段;
11.从与所述种子线段相交的投影线段中选取下一个种子线段,将所述下一个种子线段作为种子线段,并返回步骤“将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测”,直到遍历所有的区域;
12.选取所有所述种子线段构成所述平面上的外轮廓线;
13.确定模型外轮廓线,所述模型外轮廓线由多条目标预处理边构成,各所述目标预处理边为与所述外轮廓线上各投影线段分别相对应的预处理边;
14.将所述三维网格模型上的所述模型外轮廓线标注出。
15.本发明还提供一种基于投影的三维网格模型外轮廓提取系统,包括:
16.半边数据结构建立模块,用于建立三维网格模型的半边数据结构;
17.预处理边获取模块,用于对于所述半边数据结构中每条边,分别计算所述边两侧的三角形面片的法向量与指定方向的点积,将两个所述点积相乘,选取小于零的乘积对应的边为预处理边;
18.投影模块,用于获取以所述指定方向为法向量的平面,并将所述预处理边投影到所述平面上,得到投影线段,获取所述投影线段与所述预处理边的一一对应关系;
19.区域划分模块,用于根据所有所述投影线段的端点数据计算分布中心点,并以所述中心点为原点在所述平面上建立x、y坐标轴,所述x、y坐标轴将所述投影线段划分到四个区域;所述分布中心点被配置为所有所述投影线段以所述分布中心点为中心分布;
20.碰撞检测模块,用于选取某一区域为第一区域,从所述第一区域中选取距离所述原点最远的投影线段为种子线段,将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测,对通过碰撞检测的投影线段进行求交,记录相交信息;所述其他投影线段为除所述种子线段之外的投影线段;
21.循环模块,用于从与所述种子线段相交的投影线段中选取下一个种子线段,将所述下一个种子线段作为种子线段,并返回步骤“将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测”,直到遍历所有的区域;
22.平面外轮廓线获取模块,用于选取所有所述种子线段构成所述平面上的外轮廓线;
23.模型外轮廓获取模块,用于确定模型外轮廓线,所述模型外轮廓线由多条目标预处理边构成,各所述目标预处理边为与所述外轮廓线上各投影线段分别相对应的预处理边;
24.标注模块,用于将所述三维网格模型上的所述模型外轮廓线标注出。
25.根据本发明提供的具体实施例,本发明公开了以下技术效果:
26.本发明提供一种基于投影的三维网格模型外轮廓提取方法及系统,根据网格模型建立半边的数据结构;根据给定方向筛选出备选处理边;把每条边投影到平面并且建立三维与平面的对应;根据投影后的边划分成四区域结构,提高后续进行两条边的碰撞检测;选择最外沿“种子”线段,通过碰撞检测并且去交,通过端点相连,同时“最外”沿优先原则搜索获得轮廓线,同时根据投影边与备选处理边的对应关系,可以反向映射获得三维模型上的三维外轮廓线,本发明通过计算出给的方向下的三维模型外轮廓,并将该外轮廓在三维模型中标注,从而使得在cad造型设计过程中,模型外轮廓不随视角的变化而变化,可以方便任意视角查看。
附图说明
27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1为本发明实施例1提供的一种基于投影的三维网格模型外轮廓提取方法流程图;
29.图2为本发明实施例1提供的半边数据结构;
30.图3为本发明实施例1提供的包含半边数据结构的网格义齿模型;
31.图4为本发明实施例1提供的筛选出预处理边的网格义齿模型;
32.图5为本发明实施例1提供的义齿模型的预处理边投影之后的投影结果;
33.图6为本发明实施例1提供的逆时针方向选择θ1为最大夹角说明;
34.图7为本发明实施例1提供的与y轴相交的投影线段;
35.图8为本发明实施例1提供的义齿模型的投影轮廓线;
36.图9为本发明实施例1提供的义齿模型的平面轮廓和三维轮廓。
具体实施方式
37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.本发明的目的是提供一种基于投影的三维网格模型外轮廓提取方法及系统。通过计算出某一视角下的三维模型外轮廓,并将该外轮廓在三维模型中标注,从而使得在cad造型设计过程中,模型外轮廓不随视角的变化而变化,可以方便任意视角查看。
39.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
40.实施例1
41.本实施例提供一种基于投影的三维网格模型外轮廓提取方法,请参阅图1,包括:
42.s1、建立三维网格模型的半边数据结构。
43.半边数据结构就是把每一条边分成两个半边,半边是有方向的,且同一条边的两个半边方向相反。因此,一条边关联两个面,请参阅图2,而半边完全属于一个面。建立这种数据结构主要是快速方便的通过点、边、面相互检索。还需要说明的是,图2仅示出了半边数据结构的一部分,图2中0-2这条边关联的两个三角形分别是三角形0-1-2和三角形0-2-3,至于其他边(例如0-1这条边)关联的两个三角形图中并没有示出,具体可参阅图3中的模型,从图3中可以看出每一条边关联两个三角形面片。
44.对于采集的或者设计过程中生成的网格是一组三角面片,模型按照上述半边数据构造后,就组成了一个有机体,包含了顶点、边和面概念。同时它们之间可以进行方便快速的检索访问。例如按此方法构造的网格(义齿)模型如图3所示。
45.s2、对于所述半边数据结构中每条边,分别计算所述边两侧的三角形面片的法向量与指定方向的点积,将两个所述点积相乘,选取小于零的乘积对应的边为预处理边;
46.本实施例获取的三维网格模型外轮廓为该三维网格模型在某一特定视角下的外轮廓,所以首先需要先选取指定方向(即某一特定视角)。其中所述的视角也为根据需要主
要关注的视角。
47.根据特定视角下(指定方向)最外轮廓特点,最外轮廓边缘必定在三角形边上,而且边关联的两个相邻三角形面片的法向量与指定方向的点积,必定一正一负。所以首先遍历模型的所有三角形面片,并求得所有三角形面片法向与指定方向的点积;然后根据边相邻的两个三角形面片的点积相乘是否小于0,筛选出预处理边。通过这一步骤可以过滤掉绝大多数边。例如在图3给出的义齿模型这一例子中按垂直向下方向(0,0,-1),筛选出来的预处理边如图4所示。
48.s3、获取以所述指定方向为法向量的平面,并将所述预处理边投影到所述平面上,得到投影线段,获取所述投影线段与所述预处理边的一一对应关系。
49.可选的,所述平面为所述三维网格模型的最小包围盒的底面。
50.步骤s3中把预处理边对应的两个端点分别投影到所述平面上,两个投影点的连线即为边投影后的线段。在对预处理边投影过程中同时维护投影线段与预处理边之间的一一对应关系,以便后续步骤中通过投影线段找到对应的边,以便求解三维外轮廓交点。将上述提供的义齿模型的预处理边投影之后的投影结果如图5所示。
51.s4、根据所有所述投影线段的端点数据计算分布中心点,并以所述中心点为原点在所述平面上建立x、y坐标轴,所述x、y坐标轴将所述投影线段划分到四个区域;所述分布中心点被配置为所有所述投影线段以所述分布中心点为中心分布。
52.步骤s4把所有投影段依据位置坐标在划分区的位置划分成四组,构建四叉树数据结构。
53.此处将投影线段进行分区是为了在后续的步骤s5中分区进行“碰撞”检查,进而提高两投影线段是否进行求交的碰撞检测效率。处理过程中也可以对每一区域内进行再次的四区域划分。需要注意的是在区域边界上的线段,需要保持必要的冗余,即边界区域有一些“重叠”,确保投影线段间实际的碰撞。
54.s5、选取某一区域为第一区域,从所述第一区域中选取距离所述原点最远的投影线段为种子线段,将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测,对通过碰撞检测的投影线段进行求交,记录相交信息。所述其他投影线段为除所述种子线段之外的投影线段。
55.作为一种可选的实施方式,步骤s5中所述的将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测,对通过碰撞检测的投影线段进行求交,记录相交信息,具体包括:
56.s51、获取所述种子线段的最小矩形包围框,记为第一包围框,获取其他所述投影线段的最小矩形包围框,记为第二包围框;
57.s52、判断所述第一包围框与所述第二包围框是否部分重叠,并选取所述部分重叠的第二包围框对应的投影线段为碰撞线段;
58.s53、判断所述碰撞线段与所述种子线段是否相交,记录与所述种子线段相交的碰撞线段,并记录相交信息;所述相交信息包括相交的投影线段、相交点以及相交单位化长度,所述相交单位化长度为投影线段端点到相交点的长度与投影线段长度的比值。
59.需要说明的是,由于外轮廓必定包含最外沿投影线段,所以本实施例在所有投影线段中,选取最外沿线段为“种子”,然后以该线段与区域内的线段进行碰撞检测。
60.s6、从与所述种子线段相交的投影线段中选取下一个种子线段,将所述下一个种子线段作为种子线段,并返回步骤s5中的“将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测”,直到遍历所有的区域。
61.作为一种可选的实施方式,步骤s6具体包括:
62.s61、从与所述种子线段相交的投影线段中选取下一个种子线段。
63.可选的,选取下一种子线段时需沿单方向从与所述种子线段相交的投影线段中,选取与所述种子线段有向夹角最大的线段为下一个种子线段;其中,所述单方向为顺时针方向或逆时针方向。
64.例如,在选取下一种子线段时,具体可参阅图6,假设单方向为逆时针方向,并假设线段ab为选取的第一条种子线段,根据各线段的方向,并沿逆时针方向从与线段ab相交的投影线段中判断出线段cd与线段ab的有向夹角θ1最大,因此,选取线段cd为下一种子线段。同理,当线段cd作为种子线段时,根据线段cd选取下一种子线段,判断出线段gh与线段cd的有向夹角θ3最大,从而选取线段gh为种子线段cd的下一种子线段。
65.s62、判断所述下一种子线段是否全部位于上一种子线段所在区域。
66.若是,则令所述下一种子线段为种子线段,并返回步骤s5中的“将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测”;
67.若否,则令上一种子线段所在区域沿所述单方向转动得到的下一区域为新区域,令所述下一种子线段为种子线段,将所述种子线段与所述新区域内的其他投影线段进行碰撞检测。
68.由于分区之后的投影线段中存在部分线段同时位于两个区域,即存在投影线段与x轴或y轴相交。当此类线段被选择为种子线段时,利用该种子线段进行碰撞检测时,只需将该种子线段与其所属的其中一个区域的投影线段进行碰撞检测以及求交。而且所述的其中一个区域指的是该种子线段的上一个种子线段所在区域的下一个区域,具体请参阅图7,例如,图中与y轴相交的线段ab作为种子线段,若上述的单方向为逆时针方向,则种子线段ab只与第二象限中的投影线段进行碰撞检测以及求交。
69.s7、选取所有所述种子线段构成所述平面上的轮廓线。
70.具体的,以序选取所有所述种子线段,按相交信息截取子线段,构成所述平面上的外轮廓线。
71.例如,根据图6示出的情况来说,按照种子线段先ab、再cd、然后gh的顺序选取种子线段。根据各种子线段的相交信息截取种子线段,得到子线段,即种子线段cd截取种子线段ab之后,得到子线短am;种子线段gh截取种子线段cd之后,得到子线段mn,最后根据子线段am、子线段mn以及后续其他的子线段构成平面上的外轮廓。
72.步骤s7得到的轮廓线如图8所示。
73.s8、确定外轮廓线,所述外轮廓线由多条目标预处理边构成,各所述目标预处理边为与所述轮廓线上各投影线段分别相对应的预处理边。
74.在搜索“最外沿”线段过程中保存了相交信息,即相交线段,相交单位化长度。通过预处理边和投影线段的投影关系,按照等单位化长度参数即可计算获得网格模型上的三维交点,按照平面外沿轮廓线段顺序就可以求得网格模型上的三维外轮廓。
75.s9、将所述三维网格模型上的所述外轮廓线标注出。
76.根据上述的义齿模型求得的平面轮廓和三维轮廓如图9所示,由于在该图的三维网格模型中标注出了外轮廓线,从而当从任何视角查看该模型时,其外轮廓均不会受影响,方便制图者进行随时查看。
77.本实施例通过计算出三维模型的外轮廓线,并将该外轮廓线在三维模型中标注,从而在任意视角下查看三维模型时,均可对该外轮廓线进行查看,使得三维模型的外轮廓不会受视图变化的影响。
78.实施例2
79.本实施例提供一种基于投影的三维网格模型外轮廓提取系统,包括:
80.半边数据结构建立模块m1,用于建立三维网格模型的半边数据结构;
81.预处理边获取模块m2,用于对于所述半边数据结构中每条边,分别计算所述边两侧的三角形面片的法向量与指定方向的点积,将两个所述点积相乘,选取小于零的乘积对应的边为预处理边;
82.投影模块m3,用于获取以所述指定方向为法向量的平面,并将所述预处理边投影到所述平面上,得到投影线段,获取所述投影线段与所述预处理边的一一对应关系;
83.可选的,所述平面为所述三维网格模型的最小包围盒的底面。
84.区域划分模块m4,用于根据所有所述投影线段的端点数据计算分布中心点,并以所述中心点为原点在所述平面上建立x、y坐标轴,所述x、y坐标轴将所述投影线段划分到四个区域;所述中心点为所有所述端点数据的一个中心点;所述分布中心点被配置为所有所述投影线段以所述分布中心点为中心分布
85.碰撞检测模块m5,用于选取某一区域为第一区域,从所述第一区域中选取距离所述原点最远的投影线段为种子线段,将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测,对通过碰撞检测的投影线段进行求交,记录相交信息;
86.循环模块m6,用于从与所述种子线段相交的投影线段中选取下一个种子线段,将所述下一个种子线段作为种子线段,并返回步骤“将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测”,直到遍历所有的区域;所述其他投影线段为除所述种子线段之外的投影线段;
87.平面外轮廓线获取模块m7,用于选取所有所述种子线段构成所述平面上的外轮廓线;
88.模型外轮廓获取模块m8,用于确定模型外轮廓线,所述模型外轮廓线由多条目标预处理边构成,各所述目标预处理边为与所述外轮廓线上各投影线段分别相对应的预处理边;
89.标注模块m9,用于将所述三维网格模型上的所述模型外轮廓线标注出。
90.可选的,所述碰撞检测模块,具体包括:
91.包围框获取子模块,用于获取所述种子线段的最小矩形包围框,记为第一包围框,获取其他所述投影线段的最小矩形包围框,记为第二包围框;
92.碰撞检测子模块,用于判断所述第一包围框与所述第二包围框是否部分重叠,并选取所述部分重叠的第二包围框对应的投影线段为碰撞线段;
93.相交判断子模块,用于判断所述碰撞线段与所述种子线段是否相交,记录与所述种子线段相交的碰撞线段,并记录相交信息;所述相交信息包括相交的投影线段、相交点以
及相交单位化长度,所述相交单位化长度为投影线段端点到相交点的长度与投影线段长度的比值。
94.可选的,所述从与所述种子线段相交的投影线段中选取下一个种子线段,具体包括:
95.沿单方向从与所述种子线段相交的投影线段中,选取与所述种子线段有向夹角最大的线段为下一个种子线段;所述单方向为顺时针方向或逆时针方向。
96.可选的,所述循环模块具体包括:
97.下一种子线段选取子模块,用于从与所述种子线段相交的投影线段中选取下一个种子线段;
98.判断子模块,用于判断所述下一种子线段是否全部位于上一种子线段所在区域;
99.若是,则令所述下一种子线段为种子线段,并返回步骤“将所述种子线段与所述种子线段所在区域内的其他投影线段进行碰撞检测”;
100.若否,则令上一种子线段所在区域沿所述单方向转动得到的下一区域为新区域,令所述下一种子线段为种子线段,将所述种子线段与所述新区域内的其他投影线段进行碰撞检测。
101.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
102.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1