三维数字模型的缝合方法与流程

文档序号:32290704发布日期:2022-11-23 01:33阅读:47来源:国知局
三维数字模型的缝合方法与流程

1.本技术总体上涉及三维数字模型的缝合方法。


背景技术:

2.随着计算机科学的不断发展,各领域越来越多地借助基于三维数字模型的计算机图形技术辅助完成相关工作。在一些情况下,需要把两个三维数字模型进行缝合,以将两者融合为一个三维数字模型。例如,在牙科诊疗中的一些情况下,需要把通过口内扫描获得的表示患者牙冠的三维数字模型和通过断层扫描获得的表示该患者牙根的三维数字模型进行缝合,以得到表示该患者的完整牙齿的三维数字模型。
3.鉴于以上,有必要提供一种三维数字模型的缝合方法。


技术实现要素:

4.本技术的一方面提供了一种计算机执行的三维数字模型的缝合方法,其包括:获取待缝合的第一和第二三维数字模型,其中,所述第一三维数字模型的待缝合边界a上的顶点数量n小于所述第二三维数字模型的待缝合边界b上的顶点数量m;对于所述a上的每一顶点,在所述b上找到与之距离最近的顶点,配对得到x个最近点对,其中,x≤n;以每一所述最近点对以及与该最近点对中位于所述b上的点沿第一方向的相邻点构建三角面片,以将所述a和b进行部分缝合;以及填充所述部分缝合留下的空洞。
5.在一些实施方式中,所述第一方向是缝合方向。
6.在一些实施方式中,以所述x个最近点对中距离最短的点对作为所述部分缝合的起始点。
7.在一些实施方式中,所述的计算机执行的三维数字模型的缝合方法还包括:通过对比所述a和b之一上预先选定的最近点对前后若干顶点与所述a和b的另一个上所述预先选定的最近点对之后若干顶点之间的距离,确定所述a和b之一的顶点排序是否需要逆转。
8.在一些实施方式中,所述的计算机执行的三维数字模型的缝合方法还包括:用所述第一三维数字模型的所有顶点构造第一kd树,删除所述第二三维数字模型上其中心点到所述第一kd树的距离小于第一预设值的三角面片。
9.在一些实施方式中,所述的计算机执行的三维数字模型的缝合方法还包括:对于所述第一和第二三维数字模型之一的每一边界环,分别构造一棵kd树,得到第一组kd树;对于所述第一和第二三维数字模型的另一个的每一边界环,求其上各顶点与所述第一组kd树中每一个的距离均值;以及将最小距离均值所对应的所述第一和第二三维数字模型的边界环作为所述待缝合的边界a和b。
10.在一些实施方式中,所述的计算机执行的三维数字模型的缝合方法还包括:将所述a分成两个半周,分别进行所述部分缝合,其中,对于当前最近点对,若位于所述b上的顶点的序号大于前一最近点对中位于所述b上的顶点,则基于当前最近点对构建三角面片,否则,不基于当前最近点对构建三角面片。
11.在一些实施方式中,所述的计算机执行的三维数字模型的缝合方法还包括:将所述a分成两个半周,分别进行所述部分缝合,对于前半周,若当前最近点对中位于所述b上的顶点的序号在0~0.9*m的范围之外,那么,不基于当前最近点对构建三角面片,对于后半周,若当前最近点对中位于所述b上的顶点的序号在0.1*m~m-1的范围之外,那么,不基于当前最近点对构建三角面片。
12.在一些实施方式中,所述的计算机执行的三维数字模型的缝合方法还包括:对于所述每一空洞计算中心点;以及将所述空洞的每一顶点与所述中心点连线,构建三角面片,以填充该空洞。
13.在一些实施方式中,所述的计算机执行的三维数字模型的缝合方法还包括:删除非流形点和非流形边的邻接面;删除存在自相交的三角面片;以及填充以上删除所产生的空洞。
附图说明
14.以下将结合附图及其详细描述对本技术的上述及其他特征作进一步说明。应当理解的是,这些附图仅示出了根据本技术的若干示例性的实施方式,因此不应被视为是对本技术保护范围的限制。除非特别指出,附图不必是成比例的,并且其中类似的标号表示类似的部件。
15.图1为本技术一个实施例中计算机执行的牙齿三维数字模型的缝合方法的示意性流程图;以及
16.图2示意性地展示了本技术一个例子中的部分缝合。
具体实施方式
17.以下的详细描述引用了构成本说明书一部分的附图。说明书和附图所提及的示意性实施方式仅仅是出于说明性之目的,并非意图限制本技术的保护范围。在本技术的启示下,本领域技术人员能够理解,可以采用许多其他实施方式,并且可以对所描述实施方式做出各种改变,而不背离本技术的主旨和保护范围。应当理解的是,在此说明并图示的本技术的各个方面可以按照很多不同的配置来布置、替换、组合、分离和设计,这些不同配置都在本技术的保护范围之内。
18.本技术的一方面提供了一种三维数字模型的缝合方法,以将两个三维数字模型缝合形成单个三维数字模型。
19.请参图1,为本技术一个实施例中的三维数字模型的缝合方法100的示意性流程图。
20.在101中,获取待缝合的第一和第二三维数字模型。
21.在一个实施例中,所述第一和第二三维数字模型是三角网格。
22.需要说明的是,通常,在将两个三维数字模型进行缝合之前,需要对两者进行定位,使两者处于期望的相对位置关系。本技术的三维数字模型的缝合方法100聚焦于定位之后的操作,假设所述待缝合的第一和第二三维数字模型已经处于期望的相对位置关系,故此处不再对定位进行详细说明。
23.在103中,在第一和第二三维数字模型之间创造空隙。
24.在一些情况下,完成定位的所述第一和第二三维数字模型之一的边界的局部可能与另一三维数字模型相交,或者两者之一的一些三角面片在法向上与另一三维数字模型的对应部分重叠。这可能导致缝合后出现极端的非自然情况,为了避免这种情况,可以在所述第一和第二三维数字模型之间创造空隙。
25.在一个实施例中,可以用所述第一三维数字模型的所有顶点构造一颗kd树(k-dimensional tree),计算所述第二三维数字模型每个三角面片的中心到该kd树的距离,若距离小于一个预设的值,那么删除该三角面片。在一个实施例中,该预设的值可以取0.3。可以理解,可以根据所需空隙的大小调整该预设的值。经此操作后,能够确保所述第一和第二三维数字模型在待缝合处存在微小空隙。
26.可以理解,也可以用所述第二三维数字模型的所有顶点构造一颗kd树,删除所述第一三维数字模型上其中心到该kd树的距离小于所述预设的值的三角面片,以在所述第一和第二三维数字模型之间创造空隙。
27.在105中,识别第一和第二三维数字模型的待缝合边界。
28.在一些情况下,第一和/或第二三维数字模型有两个或以上的边界,在缝合前,计算机需要先识别出哪条边界是待缝合的边界。若第一和第二三维数字模型均只有一条边界,或者事先由人工指定两者的待缝合边界,那么可以略过该操作。
29.在一个实施例中,可以先利用pymesh求出所述第一和第二三维数字模型的所有边界环。然后,对于所述第一三维数字模型的每一边界环,分别构造一棵kd树(每一kd树是以对应的边界环上的点构造)。接着,对于所述第二三维数字模型的每一边界环,求其上的各点与每一所述kd树的距离均值。与最小距离均值相对应的所述第一和第二三维数字模型的边界环即待缝合的边界。以下将所述第一三维数字模型的待缝合边界记为a,将所述第二三维数字模型的待缝合边界记为b。
30.在107中,确定缝合的起始点和方向。
31.在进行缝合之前,需要先确定缝合的起始点和方向(以确保缝合沿a的走向和沿b的走向是相互顺着对方)。
32.在一个实施例中,可以通过以下操作来确定缝合的起始点和方向。在以下实施例中,a上的顶点的数量n小于b上的顶点的数量m。
33.首先,将a上的每个顶点和b上的每个顶点两两求距离(在一个实施例中,可以采用欧氏距离,euclidean distance),取其中距离最小的点对作为第一点对(作为缝合的起始点对),分别记为点p(a上的顶点)和q(b上的顶点)。
34.a和b上的顶点已按预定的方向排序,在一个实施例中,可以以a的顶点排序方向为准来确定b的缝合的方向。
35.在一个实施例中,可以在a中找到p之后的第n/4个顶点,记为r。再在b中找到q之后的第m/4个顶点,记为s;以及找到q之前的第m/4个顶点,记为t。然后,求rs和rt的距离。如果rs距离较小,那么两个边界环的方向是相顺的,否则,需要将a和b其中一个边界环反向,使两者方向相顺。
36.在本技术的启示下,可以理解,用于确定缝合方向在a和b中所取的点的数量并不限于1/4这个比例,它也可以是一个预定的值,例如,10个点、20个点等等,它也可以是其他比例,例如,1/3、1/6、1/8等。
37.在一个实施例中,可以取两组或以上的点,以进一步确保方向判断的准确性,例如,除了取一组1/4数量的点之外,还可以再取一组1/16数量的点和/或一组1/8数量的点。
38.在一个实施例中,可以人工指定缝合的起始点和方向,在这种情况下,就可以略过该操作。
39.在109中,以最近点对以及与该最近点对中属于第二三维数字模型待缝合边界的点沿缝合方向的相邻点构建三角面片,进行部分缝合。
40.在一个实施例中,为a上的每一个点找到b上的最近点,配对得到x个最近点对。
41.在一个实施例中,最近点对的数量x可能小于n,例如,若a上两个相邻的点在b上的最近点为同一个点,那么,仅将a上的这两个相邻点中的前一个与b上的该最近点配对成一个最近点对,可以不为a上这两个相邻点中的后一个配对最近点对。又例如,若两个最近点在a上和b上的位置差大于预设的阈值,那么,可以不为这两个最近点进行配对。
42.在一个实施例中,可以把a分成两个半周,分别进行部分缝合。
43.令变量l’=-1,自a边界环的初始点p开始至p之后的第n/2个点,对于每个a边界环上的顶点k,寻找b边界环中的距离最小点l(其中,q点标记为0号点),若l》l’,即当前点在b边界环上的对应点在前一有效对应点之后,将l’更新为l并将新三角面(k,l,l+1)作为填充三角面片加入待补区域。若l《=l’,则不做任何操作。
44.为了避免产生重叠的三角面片,以增强算法稳定性,可以规定对于a的前半周,l的值必须在0~0.8*m的范围内,若找到的l不在该范围内,不作任何操作(即l《=l'的情况)。可以理解,这个范围是可以调整的,例如,其上限可以在0.6*m~0.9*m之间的范围内取值。
45.对于a的后半周,以a边界环p之后的第n/2个点开始至p点,对于a边界环上的每个顶点k,进行与以上相同的操作,不同的是此时可以限制l的数值必须在0.2*m~m-1的范围内。可以理解,这个范围也是可以调整的,例如,其下限可以在0.1*m~0.4*m之间的范围内取值。
46.将a分为两个半周进行处理的原因在于,若一次性处理整个a,在起始点附近可能出现分不清方向的情况,特别是当m和n都较小时。分为两个半周,并加上不同的关于l的限制可以有效解决这个问题。
47.请参图2,示意性地展示了一个例子中的部分缝合的情况。
48.其中,pa表示a上的节点,pb表示b上的节点,pai和pbj是一对最近点对,pai+1和pbj+3是一对最近点,因此,以节点pai、pbj及pbj+1构建一个三角面片,以节点pai+1、pbj+3及pbj+4构建一个三角面片。此时,留下一个具有5个节点的空洞(pai,pai+1,pbj+3,pbj+2,pbj+1)。
49.在111中,填充部分缝合后留下的空洞。
50.部分缝合后,很可能会在a和b之间留下多个未填充的空洞,因此,需要填充这些空洞,以将a和b完全缝合。
51.在一个实施例中,对于每个空洞,可以先计算其中心点(其坐标为该空洞各顶点的坐标的平均值),然后,将该空洞的各顶点与该中心点进行连线,形成填充该空洞的多个三角面片。
52.可以理解,填充空洞的方法并不限于以上例子,可以采用任何适用的方法实现,例如,可以直接在对应的顶点之间进行连线,以形成填充该空洞的多个三角面片。
53.在完全缝合后,即得到融合了所述第一和第二三维数字模型的第三三维数字模
型。
54.在113中,对缝合区域进行平滑操作。
55.在完全缝合后,所述第三三维数字模型
56.虽然紧密缝合具有联通性,但很可能在缝合处仍旧不平滑自然。为了解决这个问题,可以对缝合区域作拉普拉斯平滑处理。在一个实施例中,在计算更新矩阵时,可以采用缝合区域的整个网格(即整个所述第三三维数字模型),但在更新点坐标时,可以只更新缝合边界点与补充点。该平滑操作可重复多次以使网格更加平滑。
57.可以理解,平滑处理的方法并不限于拉普拉斯平滑,还可以采用任何其他适用的平滑处理方法,例如,拉普拉斯平滑叠加humphrey滤波,或拉普拉斯平滑叠加taubin滤波等。
58.在115中,对第三三维数字模型进行后处理。
59.缝合可能产生非流形边、非流形点以及自相交的情况,因此,可以对所述第三三维数字模型进行相应的后处理,以消除这些缺陷。
60.在一个实施例中,后处理可以包括以下操作:
61.(一)去除非流形边和点
62.在一个实施例中,可以在非流形边和点处删除所有邻接面,直至整个所述第三三维数字模型没有非流形边与点。
63.由于删除非流形边和点的邻接面可能会产生小洞,因此,需要对这些小洞进行填充。在一个实施例中,可以根据具体情况和经验设定一个边数阈值(例如,在一个例子中,对于牙齿三维数字模型,可以将该阈值设为30),仅对边数小于该阈值的小洞进行填充,以确保不会误填充本来就存在的大洞。在一个实施例中,可以采用与以上相同的方法填充小洞。
64.(二)去除自相交
65.在一个实施例中,可以找到所有自相交面,并以与之相交三角面片数量进行排序,按从多到少顺序删除,直至不存在自相交。
66.类似地,由于删除自相交三角面片可能产生小洞,因此,可以采用上述方法对这些小洞进行填充。
67.(三)消除短边
68.由于填充小洞可能产生短边三角面片,在一个实施例中,可以设置一个边长阈值,对于边长小于该阈值的三角面片,可以通过合并相邻三角面片的办法消除短边(即移除公共边,把原先两个三角面片合并为一个大三角面片)。
69.(四)去除孤点、孤边、重复点及重复边
70.在一个实施例中,以上的操作可以迭代多次,直至消除所有以上的缺陷。
71.本技术的三维数字模型的缝合方法的其中一个应用是,将表示牙冠的三维数字模型和表示牙根的三维数字模型进行缝合,以获得表示完整牙齿的三维数字模型。通常,通过口内扫描,或者扫描患者牙齿印模或实体模型,只能获得表示牙冠的三维数字模型,而无法获得表示牙根部分的三维数字模型。通过计算机断层扫描(computed tomography,简称ct),例如,锥束计算机断层扫描(cbct),虽然能够获得完整牙齿的三维数字模型,但其整体精度较低。因此,在牙科诊疗中存在这样的需求,把通过扫描获得的表示牙冠的三维数字模型和计算机通过断层扫描获得的表示牙根的三维数字模型进行缝合,以获得表示完整牙齿
的三维数字模型。
72.本技术的三维数字模型缝合方法对于非平滑边界的缝合更具鲁棒性,在缝合后的网格中几乎不会出现极端的非自然缝合面或是大洞。
73.尽管在此公开了本技术的多个方面和实施例,但在本技术的启发下,本技术的其他方面和实施例对于本领域技术人员而言也是显而易见的。在此公开的各个方面和实施例仅用于说明目的,而非限制目的。本技术的保护范围和主旨仅通过后附的权利要求书来确定。
74.同样,各个图表可以示出所公开的方法和系统的示例性架构或其他配置,其有助于理解可包含在所公开的方法和系统中的特征和功能。要求保护的内容并不限于所示的示例性架构或配置,而所希望的特征可以用各种替代架构和配置来实现。除此之外,对于流程图、功能性描述和方法权利要求,这里所给出的方框顺序不应限于以同样的顺序实施以执行所述功能的各种实施例,除非在上下文中明确指出。
75.除非另外明确指出,本文中所使用的术语和短语及其变体均应解释为开放式的,而不是限制性的。在一些实例中,诸如“一个或多个”、“至少”、“但不限于”这样的扩展性词汇和短语或者其他类似用语的出现不应理解为在可能没有这种扩展性用语的示例中意图或者需要表示缩窄的情况。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1