基于虚拟六面体模型的虚拟三维模型生成的制作方法

文档序号:13518293阅读:358来源:国知局
基于虚拟六面体模型的虚拟三维模型生成的制作方法

相关申请的交叉引用

本申请根据35u.s.c.§119(e)要求于2015年4月2日提交的题为“advanced3dpolyhedronengineformedicalimagery”的第62/142,001号共同未决的美国临时专利申请以及于2016年3月30日提交的题为“virtualthree-dimensionalmodelgenerationbasedonvirtualhexahedronmodels”的第15/086,036号美国专利申请的优先权,这两个申请的全部内容通过引用并入本文。

本公开内容总体涉及虚拟模型生成的领域,并且具体涉及生成三维虚拟模型的计算机实现过程。



背景技术:

三维(3-d)模型提供了对具有复杂形状的对象的理解便利。通过3-d对象的计算机生成的虚拟3-d模型,可以从不同的视点视觉呈现对象的各个部件的形状和布置。此外,可以修改3-d模型以模拟对象被修改或重新定位的情况。此外,可以通过3-d打印机将3-d模型呈现为有形的复制品。

在一个示例中,可以基于2-d截面图像(例如计算机断层摄影(ct)扫描或磁共振成像(mri)扫描图像)来生成3-d模型。图1示出了包括对象110、120、130、140、160、180(例如颞下颌关节110、180,椎骨孔120、椎骨130和牙齿140、160)的人类受试者的头部的示例ct扫描图像100。示例对象包括骨骼、牙齿或用于确定受试者的医学状态的任何身体部位。

图2a和图2b示出了根据两个ct扫描图像生成3-d模型的示例常规过程。在常规方法中,提取第一ct扫描图像的对象110a、130a、140a、160a和180a的边缘,并且提取第二ct扫描图像的相应对象110b、130b、140b、160b和180b的边缘。通过连接相应的边缘,可以生成3-d模型210、230、240、260和280的表面215、235、245、265和285。因此可以获得分别与对象110、130、140、160和180对应的3-d模型210、230、240、260和280。

然而,通过常规方法生成的3-d模型无法表示放置在另一对象内的对象。例如,通过提取边缘130a、130b并且通过连接边缘130a、130b生成表面235,对象130内的对象120被忽略。因此,通过常规方法获得的3-d模型无法精确表示被其他对象封闭或包围的对象。

此外,通过常规方法生成的3-d模型可能具有未闭合(或开放)的形状。在常规方法中,如果两个边缘被确定为不是同一对象的一部分,则省略两个边缘之间的表面。缺少闭合的表面变成孔,因此导致开放形状。例如,如图3所示,生成孔310a...310f,这是因为围绕孔310的边缘被确定为是不同对象的一部分。由于3-d模型中的这些孔造成的这样的开放形状导致无法区分对象的内部部分和对象的外部部分。因此,具有开放形状的3-d模型无法进行3-d打印或导致3-d模型的3-d打印不准确。



技术实现要素:

实施方式涉及一种基于三维对象的多个二维截面图像来生成三维模型数据的计算机实现方法。方法包括:接收第一组图像数据和第二组图像数据,所述第一组图像数据表示所述多个二维截面图像中的第一截面图像,所述第二组图像数据表示所述多个二维截面图像中的第二截面图像,所述第一截面图像对应于所述三维对象沿三维轴中的一个轴的第一位置,所述第二截面图像对应于所述三维对象沿三维轴中的所述一个轴的与所述第一位置分离的第二位置,所述第一组图像数据和所述第二组图像数据二者均包括多个像素,每个像素与其二维坐标和像素值相关联;从所述第一截面图像的像素中识别第一组像素的第一组二维坐标,所述第一组像素与预定像素值范围内的第一像素值相关联;从所述第二截面图像的像素中识别第二组像素的第二组二维坐标,所述第二组像素与所述预定像素值范围内的第二像素值相关联;生成表示第一六面体模型的第一组六面体数据,所述第一组六面体数据中的每一个与来自所述第一六面体模型的在来自所述第一组二维坐标的相应坐标处的相应六面体模型相关联;生成表示第二六面体模型的第二组六面体数据,所述第二组六面体数据中的每一个与来自所述第二六面体模型的在来自所述第二组二维坐标的相应坐标处的相应六面体模型相关联;以及基于所述第一组六面体数据和所述第二组六面体数据来生成所述三维模型数据。

在一个或更多个实施方式中,所述第一六面体模型中的每一个可以具有统一高度,并且所述第二六面体模型中的每一个可以具有统一高度。所述统一高度可以对应于所述第一位置和所述第二位置之间沿着三维轴中的所述一个轴的距离。在一些实施方式中,第一六面体模型和第二六面体模型可以是立方体。

在一个或更多个实施方式中,基于所述第一组六面体数据和所述第二组六面体数据来生成所述三维模型数据包括:联结所述第一六面体模型和所述第二六面体模型中相邻的六面体模型。联结所述第一六面体模型和所述第二六面体模型中相邻的六面体模型可以包括:生成包括联结的六面体模型的闭合表面的坐标的表面数据,联结的六面体模型由所述闭合表面包围。在一个方面中,所述表面数据可以不包括两个相邻六面体模型之间的开放表面的坐标。

在一个或更多个实施方式中,所述六面体模型的闭合表面中的每一个包括两个三角形。

在一个或更多个实施方式中,基于所述第一组六面体数据和所述第二组六面体数据来生成所述三维模型数据还包括:识别联结的六面体模型的要移除的顶点,所述顶点是所述闭合表面的三个三角形的公共顶点,所述三个三角形彼此正交;生成用所述公共顶点的相邻顶点作为其三个顶点的新三角形;以及移除所述顶点和所述三个三角形。

在一个或更多个实施方式中,基于所述第一组六面体数据和所述第二组六面体数据来生成所述三维模型数据包括:识别联结的六面体模型的共享公共边的第一三角形和第二三角形,所述第一三角形和所述第二三角形彼此正交;生成具有三个顶点的新三角形,所述三个顶点包括:所述第一三角形的远离所述公共边的第一顶点、所述第二三角形的远离所述公共边的第二顶点以及作为所述公共边的第一端的第三顶点;以及移除所述公共边的第二端、所述第一三角形和所述第二三角形。

在一个或更多个实施方式中,基于所述第一组六面体数据和所述第二组六面体数据来生成所述三维模型数据包括:识别偏移顶点,所述偏移顶点由三个三角形共享,所述三个三角形中的每一个具有从三角形的中心至所述偏移顶点的远离所述三角形的相邻顶点的距离矢量,所述三个三角形的每一个的距离矢量具有相同的极性;将所述偏移顶点移位至所述偏移顶点的相邻顶点;以及在使所述偏移顶点移位之后,移除重叠的三角形。

在一个或更多个实施方式中,基于所述第一组六面体数据和所述第二组六面体数据来生成所述三维模型数据包括:识别联结的六面体模型的三个侧三角形,所述三个侧三角形共享公共顶点并且被定向在预定表面取向范围内;生成用所述公共顶点的相邻顶点作为其三个顶点的新三角形;以及移除所述公共顶点和所述三个三角形。

在一个或更多个实施方式中,基于所述第一组六面体数据和所述第二组六面体数据来生成所述三维模型数据包括:识别联结的六面体模型的两个直角三角形,所述两个直角三角形共享公共顶点和公共边,所述两个直角三角形的两个直角形成在所述公共顶点处;识别多个边中的最长边,所述多个边中的每一个的一端是所述公共顶点;识别所述多个边中的最短边;获取所述最长边的长度与所述最短边的长度之间的平均值;以及将所述公共顶点朝向所述最长边的远离所述公共顶点的一端移位所述平均值的一半。

在一个或更多个实施方式中,所述方法还包括:接收第三组图像数据,所述第三组图像数据表示所述多个二维截面图像中的第三截面图像,所述第三截面图像对应于所述三维对象沿三维轴中的所述一个轴的第三位置;从所述第三截面图像的像素中识别第三组像素的第三组二维坐标,所述第三组像素与所述预定像素值范围内的第三像素值相关联;以及生成表示第三六面体模型的第三组六面体数据,所述第三组六面体数据中的每一个与来自所述第三六面体模型的在来自所述第三组二维坐标的相应坐标处的相应六面体模型相关联,其中,还基于所述第三组六面体数据来生成所述三维模型数据。

另一实施方式涉及一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括用于基于三维对象的多个二维截面图像来生成三维模型数据的指令。所述指令在由处理器执行时使处理器:接收第一组图像数据和第二组图像数据,所述第一组图像数据表示所述多个二维截面图像中的第一截面图像,所述第二组图像数据表示所述多个二维截面图像中的第二截面图像,所述第一截面图像对应于所述三维对象沿三维轴中的一个轴的第一位置,所述第二截面图像对应于所述三维对象沿三维轴中的所述一个轴的与所述第一位置分离的第二位置,所述第一组图像数据和所述第二组图像数据二者均包括二维坐标和像素值,所述第一截面图像和第二截面图像中的每个像素与其二维坐标和像素值相关联;从所述第一截面图像的像素中识别第一组像素的第一组二维坐标,所述第一组像素与预定像素值范围内的第一像素值相关联;从所述第二截面图像的像素中识别第二组像素的第二组二维坐标,所述第二组像素与所述预定像素值范围内的第二像素值相关联;生成表示第一六面体模型的第一组六面体数据,所述第一组六面体数据中的每一个与来自所述第一六面体模型的在来自所述第一组二维坐标的相应坐标处的相应六面体模型相关联;生成表示第二六面体模型的第二组六面体数据,所述第二组六面体数据中的每一个与来自所述第二六面体模型的在来自所述第二组二维坐标的相应坐标处的相应六面体模型相关联;以及基于所述第一组六面体数据和所述第二组六面体数据来生成三维模型数据。在一些实施方式中,第一六面体模型和第二六面体模型可以是立方体。

一个或更多个实施方式涉及一种用于基于三维对象的多个二维截面图像来生成三维模型数据的系统。所述系统包括:处理器;以及非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括指令,所述指令在由所述处理器执行时使所述处理器:接收第一组图像数据和第二组图像数据,所述第一组图像数据表示所述多个二维截面图像中的第一截面图像,所述第二组图像数据表示所述多个二维截面图像中的第二截面图像,所述第一截面图像对应于所述三维对象沿三维轴中的一个轴的第一位置,所述第二截面图像对应于所述三维对象沿三维轴中的所述一个轴的与所述第一位置分离的第二位置,所述第一组图像数据和所述第二组图像数据二者均包括多个像素,每个像素与其二维坐标和像素值相关联;从所述第一截面图像的像素中识别第一组像素的第一组二维坐标,所述第一组像素与预定像素值范围内的第一像素值相关联;从所述第二截面图像的像素中识别第二组像素的第二组二维坐标,所述第二组像素与所述预定像素值范围内的第二像素值相关联;生成表示第一六面体模型的第一组六面体数据,所述第一组六面体数据中的每一个与来自所述第一六面体模型的在来自所述第一组二维坐标的相应坐标处的相应六面体模型相关联;生成表示第二六面体模型的第二组六面体数据,所述第二组六面体数据中的每一个与来自所述第二六面体模型的在来自所述第二组二维坐标的相应坐标处的相应六面体模型相关联;以及基于所述第一组六面体数据和所述第二组六面体数据来生成三维模型数据。在一些实施方式中,第一六面体模型和第二六面体模型可以是立方体。

附图说明

图1示出了示例二维(2-d)计算机断层扫描图像。

图2a和2b示出了根据常规方法的基于2-d图像生成3-d模型的计算机实现过程。

图3是根据常规方法生成的包括开放形状的示例3-d模型。

图4示出了根据实施方式的示例3-d模型生成系统。

图5是示出了根据实施方式的基于2-d图像数据来生成包括3-d模型的电子表示的3-d模型数据的计算机实现过程的流程图。

图6是示出了根据实施方式的生成3-d模型的电子表示的计算机实现过程的流程图。

图7a示出了根据实施方式的将2-d图像中的像素转换成3-d模型的六面体模型的示例。

图7b示出了根据实施方式的与图1的ct扫描图像对应的3-d模型的示例截面。

图7c是根据实施方式的图7b所示的3-d模型的截面的一部分的展开图。

图7d示出了根据实施方式的针对像素生成六面体模型的示例过程。

图7e示出了根据实施方式的包括多个六面体模型的示例3-d模型。

图7f是根据实施方式的图7e所示的3-d模型的一部分的放大图。

图8是示出了根据实施方式的对3-d模型执行表面优化的计算机实现过程的流程图。

图9是示出了根据实施方式的移除由三个正交表面共享的六面体模型的顶点的计算机实现过程的流程图。

图10a示出了根据图9所示的计算机实现过程的、在移除由三个正交表面共享的六面体模型的顶点之前的示例3-d模型以及在移除该顶点之后的示例3-d模型。

图10b示出了根据图9所示的计算机实现过程的、确定由三个正交表面共享的六面体模型的顶点的示例方法。

图10c示出了根据图9所示的计算机实现过程的、移除由三个正交表面共享的六面体模型的顶点的示例过程。

图11是示出了根据实施方式的合成3-d模型的正交表面的计算机实现过程的流程图。

图12示出了根据图11所示的计算机实现过程的、在合成3-d模型的正交表面之前的示例3-d模型以及在合成正交表面之后的示例3-d模型。

图13是示出了根据实施方式的修整(trim)3-d模型的偏移顶点的计算机实现过程的流程图。

图14a示出了具有偏移顶点的示例3-d模型。

图14b示出了根据图13所示的计算机实现过程的、确定图14a所示的示例3-d模型的偏移顶点的示例过程。

图14c示出了根据图13所示的计算机实现过程的、移除图14a的示例3-d模型的偏移顶点之后的示例表面。

图14d示出了根据图13所示的计算机实现过程的、在修整3-d模型的偏移顶点之前的示例3-d模型以及在修整偏移顶点之后的示例3-d模型。

图15是示出了根据实施方式的合成3-d模型的侧表面的计算机实现过程的流程图。

图16示出了根据图15所示的计算机实现过程的、在合成3-d模型的侧表面之前的示例3-d模型以及在合成侧表面之后的示例3-d模型。

图17是示出了根据实施方式的平衡3-d模型的边的计算机实现过程的流程图。

图18示出了根据图17所示的计算机实现过程的、在平衡3-d模型的边之前的示例3-d模型以及在平衡所述边之后的示例3-d模型。

图19a示出了根据一个实施方式的在对3-d模型执行表面优化之前的包括六面体模型的示例3-d模型以及在执行表面优化之后的示例3-d模型。

图19b示出了根据一个实施方式的在对图7e所示的包括六面体模型的3-d模型执行表面优化之后的示例3-d模型。

图19c是根据实施方式的图19b所示的示例3-d模型的一部分的放大图。

图20示出了根据实施方式的能够从机器可读介质读取指令并且在处理器(或控制器)中执行指令的示例机器(例如计算机)的部件。

具体实施方式

附图(图)和以下描述仅通过说明的方式与优选实施方式相关。本领域技术人员可以将本文公开的结构和方法的替选实施方式视为在不脱离所公开的原理的情况下可以采用的可行替选方案。

现在将详细参考几个实施方式,这几个实施方式的示例被示出在附图中。应注意,只要可行,在附图中可以使用类似或相似的附图标记,并且所述类似或相似的附图标记可以指示类似或相似的功能。附图仅为了说明的目的而描绘了所公开的系统(或方法)的实施方式。本领域技术人员根据下面的描述将容易认识到在不脱离本文描述的原理的情况下可以采用本文示出的结构和方法的替选实施方式。

配置概述

所公开的配置的示例实施方式包括用于基于多个虚拟六面体模型(本文中也称为“六面体模型”)来生成3-d对象的虚拟3-d模型(本文中也称为“3-d模型”)的计算机实现方法(系统和非暂态计算机存储可读介质),所述多个虚拟六面体模型是根据3-d对象的2-d截面图像中的各个像素生成的。六面体模型是具有表示六面体形状的计算机化数据的计算机生成的虚拟单元部件。

不同的截面图像对应于3-d对象沿着3-d轴中的一个轴的不同位置。每个截面图像被划分为多个像素,并且通过2-d坐标和2-d截面图像沿3-d轴中的一个轴的位置来识别2-d截面图像的像素。在虚拟3-d空间中的与2-d坐标和2-d截面图像沿3-d轴中的一个轴的位置对应的位置处,生成与像素对应的六面体模型。

通过生成3-d对象的包括多个六面体模型的3-d模型,其中每个六面体模型对应于2-d截面图像的相应像素,可以精确地表示在另一对象内的对象。此外,3-d模型应当具有闭合的形状,因此可以成功执行3-d模型的3-d打印。

在一方面,3-d模型由可以电子存储或传输的3-d模型数据来表示。本文中的3-d模型数据指的是具有闭合形状的3-d模型的电子表示。3-d模型数据指示3-d模型的部件(例如顶点、边、表面或其任何组合)的结构配置(例如位置、形状、尺寸、颜色等)。3-d模型数据可以由用于生成3d模型的视觉表示的计算系统检索,或者可以应用于3d打印机以生成3-d模型的有形物理表示。

系统概述

图4示出了根据实施方式的示例3-d模型生成系统420。在图4中,系统420接收3-d对象的2-d图像数据410,并且生成对象的3-d模型480。系统420基于2-d图像数据来生成虚拟3-d模型480,并且存储3-d模型的3-d模型数据(即电子表示)。

2-d图像数据是2-d截面图像(例如ct扫描图像、mri扫描图像等)的电子计算机化表示。2-d图像数据也被称为“2-d图像文件”。针对2-d图像的每个像素,2-d图像的2-d图像文件包括识别像素的2-d坐标和像素的像素值(例如颜色值)。像素值表示由2-d坐标识别的像素的颜色。像素值可以用任何颜色空间格式(例如rgb、ycbcr等)来表示。在一个实施方式中,2-d图像是3-d对象的截面图像,其中,每个2-d图像对应于相应的2-d图像文件。每个2-d图像沿着3-d图像的与2-d图像正交的轴(优选地,以均匀的距离)与另一2-d图像分离。换言之,2d图像数据410表示3-d对象的多个截面,每个截面在3-d对象沿着轴的不同深度处。例如,人类头骨可以由3-d对象的被分开一定距离的数十或数百个2-d截面图像(例如ct扫描或mri扫描)来表示。2-d截面图像中的每一个包括非常大量的像素,例如数十万或数百万或者在一些情况下甚至更多的像素,这取决于2-d截面图像的分辨率。因此,由于根据本文的实施方式的2-d图像至3-d模型的转换涉及计算机化图像数据的非常大量的计算,因此3-d模型生成系统必须实现为计算机化系统。

系统420是用于生成3-d模型数据的计算装置。在一个实施方式中,系统420包括2-d图像至3-d模型转换模块430(本文中也称为“转换模块430”)、表面优化模块440、处理器450和存储装置460,存储装置460存储计算机化数据例如2-d图像数据或3-d模型数据。在其他实施方式中,与图4所示的相比,系统420包括更多或更少数量的部件。例如,系统420可以包括如下面相对于图20详细描述的另外的部件。

转换模块430基于2-d图像文件来生成3-d模型数据。在一个实施方式中,转换模块430根据在2-d图像文件中识别的坐标和像素值,生成包括六面体模型的3-d模型。针对每个2-d图像文件,转换模块430识别具有预定像素值范围内的像素值的像素,并且针对识别的像素生成六面体模型。例如,转换模块430可以识别具有表示人类骨骼的一定像素颜色范围内的像素值的像素,以便识别在2-d图像文件中表示的3-d对象(例如骨骼)。每个六面体模型与相应的像素相关联,并且在与相应像素的坐标对应的位置处生成。在一个示例中,六面体模型的宽度和长度对应于像素的宽度和长度,并且六面体模型的高度对应于两个2-d图像的相应位置之间沿正交于2-d图像的轴的间隔。因此,可以层叠来自不同2-d图像的六面体模型以形成3-d模型。下面将相对于图6和图7a至图7f详细提供基于2-d图像生成3-d模型的示例步骤。转换模块430生成描述包括六面体模型的3-d模型的结构配置的3-d模型数据,并且将六面体模型存储在存储装置460处。在一个实施方式中,转换模块430被实现为硬件、软件、固件或其组合。

表面优化模块440获取由转换模块430生成的3-d模型数据,并且自动执行操作以平滑3-d模型数据的3-d模型的虚拟表面。包括具有突出顶点或凹陷顶点的六面体模型的3-d模型可能看起来不自然或真实。表面优化模块440修改3-d模型数据以对3-d模型的表面进行合并、重新定位、移除或调整大小。在一个方面,六面体模型的每个表面用三角形表示,并且可以通过对三角形进行修改或变换来平滑3-d模型的表面。下面将相对于图8至图19详细提供平滑3-d模型数据的表面的示例步骤。响应于平滑3-d模型的表面,表面优化模块440将描述具有平滑表面的3-d模型的结构配置的经修改的3-d模型数据存储在存储装置460处。在一个实施方式中,软件优化模块440被实现为硬件、软件、固件或其组合。

处理器450是执行指令的处理单元,并且可以包括通用计算机处理器。在一些实施方式中,可以将处理器450实现在可重新配置的硬件(例如现场可编程门阵列(fpga))或一个或更多个专用集成电路(asic)上。处理器450执行用于执行本文所公开的系统420的功能的指令。在一个实施方式中,处理器450包括多个处理单元,并且可以并行执行多个指令。

存储装置460是用于存储数据的电子存储部件。在一个实施方式中,存储装置460存储用于执行系统420的软件模块(例如转换模块430和/或表面优化模块440)的功能的一个或更多个指令。此外,系统420可以存储2-d图像数据410、3-d模型数据等。所存储的数据可以由系统420的模块或图4中未示出的其他部件访问。例如,输出显示模块(未示出)获取3-d模型数据并且呈现3-d模型的虚拟表示。对于另一示例,3-d打印机获取3-d模型数据并且生成3-d模型的有形物理表示。

图5是示出了根据实施方式的基于2-d图像数据来生成包括3-d模型的电子表示的3-d模型数据的计算机实现过程的流程图。在一个实施方式中,图5中的步骤由图4的系统420来执行。在其他实施方式中,其他实体可以执行步骤中的一些步骤或所有步骤。同样,实施方式可以包括不同和/或另外的步骤,或者以不同的顺序执行步骤。

系统420获取(510)2-d图像数据。2-d图像数据是三维对象的2-d截面图像的电子表示。

系统420接收(515)像素值的用户输入选择。在一个实施方式中,系统420向用户视觉呈现2-d截面图像中的一个,并且用户可以选择感兴趣的像素值。在一个示例中,用户可以选择单个像素值,并且系统根据选择的像素值来识别像素值的范围。用户可以选择多个像素值或多个像素值范围。在另一实施方式中,用户在呈现的2-d截面图像上选择感兴趣的部件(例如图1的牙齿)。在本实施方式中,通过与选择的部件对应的像素的2-d坐标来识别部件的用户选择。系统420识别通过2-d坐标识别的所选择部件的像素值或像素值范围。用户可以选择多个部件,并且系统420识别与通过2-d坐标识别的所选择部件对应的多个像素值或多个像素值范围。

系统420生成(520)包括六面体模型的3-d模型。具体地,对于每个2-d图像文件,系统420识别具有在预定像素值范围内的像素值的像素,并且针对识别的像素生成六面体模型。例如,转换模块430可以识别具有表示人类骨骼的一定像素颜色范围内的像素值的像素,以便识别在2-d图像文件中表示的3-d对象(例如骨骼)并且生成3-d模型。每个六面体模型根据相应像素的坐标和2-d图像沿正交轴线的位置来定位。因此,可以层叠六面体模型以形成具有闭合形状的3-d模型。

系统420执行(530)表面优化。在一个方面中,系统420执行表面优化以自动平滑包括六面体模型的3-d模型的表面。

系统420生成(540)输出3-d模型数据。系统420生成修改的3-d模型的3-d模型数据作为输出3-d模型数据。输出3-d模型数据可以由计算机器处理以呈现3-d模型的视觉表示,或者由3d打印机处理以生成3-d模型的物理表示。

图6是示出了根据实施方式的生成包括六面体模型的3-d模型的电子表示的计算机实现过程的流程图。在一个实施方式中,图6中的步骤是图5中的步骤520的一部分。因此,图6中的步骤由图4的系统420(例如转换模块430)来执行。在其他实施方式中,其他实体可以执行步骤中的一些步骤或所有步骤。同样,实施方式可以包括不同和/或另外的步骤,或者以不同的顺序执行步骤。

系统420生成(610)虚拟3-d空间(本文中也称为“3-d空间”)。3-d空间是计算机化图形系统中可以生成虚拟3-d模型的虚拟空间。系统420接收2-d图像,并且确定2-d图像的数量以及每个2-d图像中的像素的数量。系统420生成虚拟空间,该空间可以包括至少2-d图像中的总像素数,并且在大多数情况下可以包括更多的像素。此外,系统420将2-d图像的2-d坐标映射至3-d空间的相应3-d坐标中。例如,可以将由第三2-d图像的2-d坐标(x,y)识别的像素映射至3-d坐标(x,y,z),其中,z表示2-d图像沿3-d对象的轴的深度,并且x和y是2-d图像内的像素的2-d坐标。由于根据本文中的实施方式,系统420接收多组2-d图像以生成3-d模型数据,因此,每个2-d图像中的像素可以具有取决于像素所属的2-d图像的不同的z坐标数据。例如,一个截面图像中处于(x,y)2-d位置处的像素可以具有3-d坐标(x,y,z1),而另一截面图像中处于相同(x,y)2-d位置处但处于沿3-d对象的轴的不同深度处的另一像素可以具有3-d坐标(x,y,z2)。因此,可以在与像素的2-d坐标对应的3-d坐标处生成与该像素对应的六面体模型。

系统420在3-d对象的多组2-d截面图像中选择(620)2-d图像。在一个方面中,系统420根据2-d图像沿与该2-d图像正交的轴的位置来选择2-d图像。例如,首先选择位于正交轴线的一端(例如底部)处的2-d图像,然后接下来选择处于正交轴线的不同深度处的朝向另一端(例如顶部)的后续2-d图像。

系统420选择(630)具有目标像素值的像素。具体地,系统420识别具有预定像素值范围内的像素值的像素。在一个方法中,预定像素值范围由系统420的用户来限定或者由系统420预先限定。系统420从识别的像素中选择像素。

系统420生成(640)与所选择的像素对应的六面体模型的顶点。系统基于像素的2-d坐标来确定六面体模型的尺寸(例如高度、宽度和长度)和位置,并且基于所确定的六面体模型的尺寸和位置来生成指示六面体模型的顶点的位置的六面体数据。在一个示例中,可以使用3-d空间中的3-d坐标来识别六面体模型的每个顶点。在一些实施方式中,六面体模型可以是立方体模型。

系统420将所选择像素的像素值与相邻像素的像素值进行比较(650)。相邻像素包括同一2-d图像中的像素以及不同2-d图像中的像素(例如在选择的像素的上方/下方)。具体地,系统420针对每个相邻像素比较该相邻像素是否具有预定像素值范围内的像素值。例如,预定像素值范围可以对应于表示人类的3-d对象的骨骼的像素值(颜色值)。

系统420基于像素值的比较来生成(660)六面体模型的表面。在一个实施方式中,响应于确定位于一个方向上的相邻像素具有预定像素值范围内的像素值,系统420确定六面体模型的面向该方向的表面是开放表面。六面体模型的开放表面表示两个六面体模型被联结(adjoin)以共享开放表面。联结的六面体模型被当作单个六面体模型以提高计算效率。响应于确定位于另一方向上的相邻像素具有预定像素值范围外的像素值,系统420确定六面体模型的面向所述另一方向的表面是闭合表面。六面体模型的闭合表面成为3-d模型的用于区分3-d模型的内侧和外侧的表面的一部分。在一个方面中,闭合表面具有与所选择像素的像素值或预定像素值范围的平均值对应的颜色。

系统420生成指示闭合表面的顶点的位置和闭合表面的颜色的六面体数据。在一个实施方式中,六面体模型的每个闭合表面被划分成两个三角形,并且系统420存储包括每个三角形的顶点位置的六面体数据。通过将六面体模型的表面划分成两个三角形,可以执行表面优化,以将六面体模型的矩形或正方形表面修改成包括一个或更多个三角形的任何任意多边形。

系统420确定(670)是否需要针对2-d图像的具有预定像素值范围内的像素值的另外的像素生成六面体模型。响应于确定需要针对2-d图像生成另外的六面体模型,系统420进行至步骤630以选择另一像素并且重复步骤640至660。响应于确定针对2-d图像生成了所有的六面体模型,系统420确定(680)是否存在另外的2-d图像。如果存在另外的2-d图像,则系统420进行至步骤620并且选择下一2-d图像(例如朝向正交轴线的所述另一端的后续图像)并且重复步骤630至670。

在处理所有2-d图像之后,基于六面体模型来生成3-d模型。3-d模型是根据3-d空间的3-d坐标层叠的六面体模型的集合。3-d模型的表面被表示为六面体模型的闭合表面。系统420生成包括六面体数据的3-d模型数据。

在图6所公开的过程中,可以通过步骤650和660针对像素生成六面体模型的闭合表面和开放表面。在其他实施方式中,可以省略步骤650和660。例如,可以针对具有预定像素值范围内的像素值的像素生成分别由闭合表面完全包围的六面体模型,然后可以合并相邻六面体模型以移除共享表面或使用开放表面来代替共享表面。

图7a示出了根据实施方式的将2-d图像710中的像素转换成包括虚拟六面体模型的虚拟3-d模型722的示例。系统420接收作为2-d截面图像的计算机化表示的2-d图像数据(或2-d图像文件)并且生成作为3-d模型的电子表示的3-d模型数据。2-d图像710是3-d对象的截面图像,其中,每个2-d对象沿与2-d图像710正交的轴线700与另一2-d图像分离。每个2-d图像被划分成像素712,并且每个像素由2-d坐标(例如行716和列714)来识别。例如,高分辨率2-d图像包括1080×720个像素(每个图像超过700,000个像素)。2-d图像710沿正交轴线700的位置使得能够使用另一维度来识别2-d图像710中的像素。

系统在3-d空间720中生成包括六面体模型的3-d模型722,其中,根据相应像素的位置来生成每个六面体模型。根据2-d图像710中的总像素数来生成3-d空间。假定高分辨率2-d图像710中的30个(例如每个图像1080×720个像素)可用,则可以生成包括多于2300万个六面体模型的3-d空间720,因此可以生成高分辨率3-d模型722。在一个示例中,行716对应于3-d空间720的宽度724,列714对应于3-d空间720的长度726,以及2-d图像710沿正交轴线700的位置对应于3-d空间720的高度728。因此,第一图像中的像素对应于第一层中的六面体模型,并且沿轴线700在第一图像之后的第二图像中的像素对应于第二层中的六面体模型,第二层沿3-d空间720中的轴线705在第一层上方。因此,可以将以2-d坐标表示的像素映射成3-d坐标,并且可以在与2-d图像中的像素的2-d坐标对应的3-d坐标处生成六面体模型。

在一个实施方式中,系统420接收表示第一图像的第一组图像数据,并且基于第一组图像数据来生成表示第一六面体模型的第一组六面体数据。类似地,系统420接收表示沿轴线700在第一图像之后的第二图像的第二组图像数据,并且基于第二组图像数据来生成第二组六面体数据,第二组六面体数据表示沿轴线705层叠在第一六面体模型的顶部上的第二六面体模型。系统420获取表示沿轴线700的另外图像的另外图像数据,并且生成另外的六面体数据,其表示在沿轴线705的相应水平(或层)处的另外的六面体模型。

图7b示出了根据实施方式的与图1的ct扫描图像对应的3-d模型的示例截面730。在截面730中,在相应像素的位置处生成六面体模型。因此,如图7b所示,可以精确的表示另一对象内的对象。图7c是图7b的部分735的放大图,示出了与图1的另一对象130对应的另一对象740(例如椎骨)内的与图1的对象120对应的内部对象745(例如椎骨孔)被精确地表示。

图7d示出了根据实施方式的针对像素生成六面体模型的示例过程。例如,系统420选择像素p来生成六面体模型780。系统420确定同一2-d图像中的相邻像素768a、768b、768c具有预定像素值范围内的像素值,但是确定相邻像素768d具有预定像素值范围之外的像素值。因此,系统420生成表面信息,该表面信息描述六面体模型780的朝向具有预定像素值范围之外的像素值的像素768d的闭合表面786(786c、786d)的结构配置(例如顶点的位置、表面的颜色等)。在一个方面中,闭合表面786被划分成两个三角形786c和786d。系统420还确定2-d图像的在像素p下方的相邻像素755具有预定像素值范围内的像素值,但是确定2-d图像的在像素p上方的相邻像素775具有预定像素值范围之外的像素值。因此,系统420生成(或更新)六面体模型780的表面信息以包括朝向具有预定像素值范围之外的像素值的像素775的闭合表面782(782a、782b)的结构配置。也可以将闭合表面782划分成两个三角形782a和782b。六面体模型780朝向具有预定像素值范围内的像素值的像素例如朝向像素768a、768b、768c、755不具有闭合表面而是具有开放表面。换言之,六面体模型780的除了闭合表面782、786之外的其余表面被确定为是开放表面,这是因为相邻六面体模型会共享这些开放表面。通过针对3-d空间的正交轴线的不同深度处的每个2-d截面图像中的所有像素重复如图7d(和图6)所描述的过程,即限定具有闭合表面或开放表面的六面体并且联结与2d截面图像中的不同2d截面图像对应的这样的六面体,可以生成由对应于3-d对象的六面体模型构成的3-d模型。

图7e示出了根据实施方式的包括多个六面体模型的示例3-d模型790。系统420基于2-d图像来生成用多个六面体模型表示的人类头骨的3-d模型。图7f是图7e所示的3-d模型的部分792的放大图,以示出3-d模型的六面体模型。由于每个六面体模型具有闭合形状,因此也确保了3-d模型具有闭合形状。

图8是示出了根据实施方式的对3-d模型执行表面优化的计算机实现过程的流程图。包括六面体模型的3-d模型包括由于如图7e和图7f所示的六面体模型的突出顶点或凹陷顶点引起的粗糙表面或凹凸表面。在一个实施方式中,图8中的步骤是图5中的步骤530的一部分。因此,图8中的步骤由图4的系统420(例如表面优化模块440)来执行。在其他实施方式中,其他实体可以执行步骤中的一些步骤或所有步骤。同样,实施方式可以包括不同和/或另外的步骤,或者以不同的顺序执行步骤。

在一个实施方式中,系统420从图5的步骤520接收描述包括六面体模型的3-d模型的3-d模型数据。基于3-d模型数据,系统420移除(810)六面体模型的一个或更多个顶点,其中每个顶点由三个正交表面(例如三个正交三角形)共享。本文中的正交表面是指具有彼此基本正交的两个法矢量的表面。此外,系统420合成(820)六面体模型的正交表面。系统420修整(830)任何多面体的偏移顶点(例如从附近表面突出或凹陷的多面体的顶点)。系统420合成(840)3-d模型的侧表面。本文中的侧表面是指具有基本类似取向的表面(即面向3-d模型外侧的表面)。系统420平衡(850)表面的边(例如三角形的边)。系统420生成描述经修改的3-d模型的结构配置的3-d模型数据。下面相对于图9至图18详细提供了这些步骤的示例过程。

在其他实施方式中,可以以不同的顺序来执行图8所示的步骤中的一些步骤。在一个示例中,步骤830可以在步骤820之前执行,或者步骤840可以在步骤830之前执行。然而,通过以图8所示的顺序执行表面优化,可以节省计算资源并且可以提高处理效率。例如,与在合成正交表面之后修整顶点相比较,在合成正交表面之前修整偏移顶点涉及更多数量的顶点要被修整。类似地,与在修整偏移顶点之后合成侧表面相比,在修整偏移顶点之前合成侧表面涉及更多数量的表面要被合成。

图9是示出了根据实施方式的移除由三个正交表面共享的六面体模型的顶点的计算机实现过程的流程图。在一个实施方式中,图9中的步骤是图8中的步骤810的一部分。因此,图9中的步骤由图4的系统420(例如表面优化模块440)来执行。在其他实施方式中,其他实体可以执行步骤中的一些步骤或所有步骤。同样,实施方式可以包括不同和/或另外的步骤,或者以不同的顺序执行步骤。

系统420从包括六面体模型的3-d模型的多个顶点中选择(910)目标顶点。系统420确定(920)目标顶点是否由三个表面(例如三角形)共享。响应于确定目标顶点由三个表面共享,系统420确定三个角,其中,三个角中的每一个是三个表面中的两个表面的两个法矢量之间的角。如果三个角的和基本上等于270度,则系统420确定目标顶点是要移除的顶点,并且生成(940)用目标顶点的相邻顶点作为其顶点的新表面。系统420移除(950)目标顶点和与该目标顶点耦接的表面。

响应于在步骤920中确定目标顶点不是由三个表面共享或在步骤930中确定三个角之和不是基本上等于270度,系统420进行至步骤960。

系统420确定(960)是否需要检查另外的顶点。响应于确定需要检查另外的顶点,系统420进行至步骤910并且从3-d模型的多个顶点中选择另一目标顶点。如果检查了所有顶点,则系统420结束(970)移除由三个正交表面共享的六面体模型的顶点的过程。

图10a示出了根据图9所示的计算机实现过程的、在移除六面体模型的顶点之前的示例3-d模型1010以及在移除六面体模型的顶点之后的示例3-d模型1050。

在图10a中,3-d模型1010包括包含多个顶点的六面体模型。系统420确定顶点1020a、1020b、1020c、1020d要被移除,这是因为这些顶点中的每一个由三个正交表面共享。系统420还确定顶点1030a、1030b、1030d是顶点1020a的相邻顶点;顶点1030e、1030d、1030f是顶点1020b的相邻顶点;顶点1030d、1030f、1030g是顶点1020c的相邻顶点;以及顶点1030d、1030h、1030g是顶点1020d的相邻顶点。因此,系统420生成用相邻顶点1030a、1030b、1030d作为其顶点的第一三角形s1、用相邻顶点1030e、1030d、1030f作为其顶点的第二三角形s2、用相邻顶点1030d、1030f、1030g作为其顶点的第三三角形s3以及用相邻顶点1030d、1030h、1030g作为其顶点的第四三角形s4。此外,系统420移除分别与顶点1020a、1020b、1020c、1020d耦接的三角形(为了简化,在图10a中未明确示出),并且还移除顶点1020a、1020b、1020d、1020d。

图10b示出了根据图9所示的计算机实现过程的、确定要移除的六面体模型的顶点的示例方法。在图10b所示的示例中,顶点1020c被确定为是要移除的顶点。系统420获取具有顶点1030d、1030f、1020c的三角形t1的第一法矢量n1、具有顶点1020c、1030f、1030g的三角形t2的第二法矢量n2以及具有顶点1030d、1020c、1030g的三角形t3的第三法矢量n3。此外,系统420获取第一法矢量n1与第二法矢量n2之间的角θ1、第二法矢量n2与第三法矢量n3之间的角θ2以及第一法矢量n1与第三法矢量n3之间的角θ3。系统420将角θ1、θ2、θ3相加,并且确定需要移除顶点1020c,因为角θ1、θ2、θ3之和是270度。可以针对顶点1020a、1020b、1020d执行类似的步骤。通过图9所公开的过程,可以将突出顶点(例如顶点1020a、1020b、1020d)以及凹陷顶点(例如顶点1020c)移除以平滑3-d模型的表面。

图10c示出了根据图9所示的计算机实现过程的、移除由三个正交表面共享的六面体模型的顶点的示例过程。六面体模型包括顶点1020a和顶点1020a的相邻顶点1030a、1030b、1030c。由于顶点1020a由三个正交三角形t4、t5、t6共享,因此系统420确定需要移除顶点1020a。系统420生成用相邻顶点1030a、1030b、1030c作为其顶点的新三角形t7。此外,系统移除三角形t4、t5、t6和顶点1020a。

图11是示出了根据实施方式的合成3-d模型的正交表面的计算机实现过程的流程图。在一个实施方式中,图11中的步骤是图8中的步骤820的一部分。因此,图11中的步骤由图4的系统420(例如表面优化模块440)来执行。在其他实施方式中,其他实体可以执行步骤中的一些步骤或所有步骤。同样,实施方式可以包括不同和/或另外的步骤,或者以不同的顺序执行步骤。

系统420从3-d模型的多个顶点中选择(1110)目标顶点。系统420确定(1120)具有作为目标顶点的一端和作为目标顶点的相邻顶点的另一端的边是否由两个表面(例如三角形)共享。响应于确定该边由两个表面共享,系统420确定(1120)共享公共边的两个表面是否彼此正交。响应于确定共享公共边的两个表面彼此正交,系统420确定(1135)要保留目标顶点和相邻顶点中的哪个顶点以及要移除哪个顶点。在一个方面中,系统420确定保留由更多数量的表面共享的顶点,并且移除另一顶点。

系统420生成(1140)用确定要保留的顶点和非公共相邻顶点(即远离公共边的相邻顶点)作为其顶点的新表面。因此,新表面不包括要移除的另一顶点作为其顶点。系统420移除正交表面1150和确定要移除的另一顶点。

响应于在步骤1120中确定没有具有作为由两个表面共享的目标顶点的一端的公共边或在步骤1130中确定共享公共边的两个表面彼此不正交,系统420进行至步骤1160。

系统420确定(1160)是否需要检查另外的顶点。响应于确定需要检查另外的顶点,系统420进行至步骤1110并且从3-d模型的多个顶点中选择另一目标顶点。如果检查了所有顶点,则系统420结束(1170)合成3-d模型的正交表面的过程。

图12示出了根据图11所示的计算机实现过程的、在合成3-d模型1210的正交表面之前的示例3-d模型1210以及在合成正交表面之后的示例3-d模型1250。在一个实施方式中,在如图9、图10a和图10b所示移除由三个正交表面共享的六面体模型的顶点之后获得3-d模型1210。

在图12中,3-d模型1210包括顶点1220及其相邻的顶点1230a、1230b…1230g(在本文中也称为“相邻顶点1230”)。由于第一边1232a由彼此正交的两个三角形b1、b2共享,因此系统420确定需要移除用两个顶点1230a和1220作为两端的第一边1232a。此外,由于与顶点1230a相比,顶点1220由更多数量的三角形共享,因此系统420确定需要移除第一边1232a的顶点1230a并且需要保留顶点1220。类似地,由于第二边1232b由彼此正交的两个三角形b3、b4共享,因此系统420确定需要移除用两个顶点1230d和1220作为两端的第二边1232b。此外,由于与顶点1230d相比,顶点1220由更多数量的三角形共享,因此系统420确定需要移除第二边1232b的顶点1230d并且需要保留顶点1220。系统生成用顶点1220、1230b、1230g作为其顶点的第一三角形b11和具有顶点1220、1230c、1230e的第二三角形b12。此外,系统420移除三角形b1、b2、b3、b4以及顶点1230a和1230d。

图13是示出了根据实施方式的修整3-d模型的偏移顶点(例如从附近表面突出或凹陷的多面体的顶点)的计算机实现过程的流程图。在一个实施方式中,图13中的步骤是图8中的步骤830的一部分。因此,图13中的步骤由图4的系统420(例如表面优化模块440)来执行。在其他实施方式中,其他实体可以执行步骤中的一些步骤或所有步骤。同样,实施方式可以包括不同和/或另外的步骤,或者以不同的顺序执行步骤。

系统420从3-d模型的多个顶点中选择(1310)目标顶点。系统420确定(1320)目标顶点是否由至少三个表面(例如三角形)共享。响应于确定目标顶点由至少三个表面共享,系统420针对至少三个表面中的每一个获取(1330)至目标顶点的远离表面的相邻顶点的距离矢量。本文中的距离矢量是指从表面的中心至目标顶点的远离表面的相邻顶点的矢量。表面的每个距离矢量相对于表面的法矢量具有极性。法矢量可以被定义为面向3-d模型外侧的表面的方向。如果表面的距离矢量指向3-d模型的内侧,则距离矢量具有与表面的法矢量不同的极性(或负极性)。相反,如果表面的距离矢量指向3-d模型的外侧,则距离矢量具有与表面的法矢量相同的极性(或正极性)。

系统420基于距离矢量的极性来确定(1340)目标顶点是否是偏移顶点。在一个方面中,如果每个距离矢量具有相同的极性,系统420确定目标矢量是偏移顶点。如果目标矢量都具有负极性,则系统420确定偏移顶点是突出顶点。另一方面,如果目标矢量都具有正极性,则系统420确定偏移顶点是凹陷顶点。如果距离矢量具有不同的极性,则系统420确定目标矢量不是偏移顶点。

系统420使偏移顶点移位(1350)。在一个方法中,目标顶点移位至目标顶点最接近的相邻顶点。系统420移除(1360)任何重叠的表面。因此,任何偏移顶点都被有效地移除,并且可以平滑3-d模型的表面。

响应于在步骤1320中确定目标顶点不由至少三个表面共享或在步骤1340中确定目标顶点不是偏移顶点,系统420进行至步骤1370。

系统420确定(1370)是否需要检查另外的顶点。响应于确定需要检查另外的顶点,系统420进行至步骤1310并且从3-d模型的多个顶点中选择另一目标顶点。如果检查了所有顶点,则系统420结束(1380)修整3-d模型的偏移顶点的过程。

图14a示出了具有包含偏移顶点1410和1430的表面的示例3-d模型。图14a中的示例3-d模型的表面由顶点1410、1420a…1420d、1430和1440a…1440d来限定。顶点1410从附近的表面突出,其中,顶点1440从附近的表面凹陷。

图14b示出了根据如图13所示的计算机实现过程的、确定图14a所示的示例3-d模型的偏移顶点1410和1430的示例过程。

系统420选择由以下四个三角形共享的顶点1410:具有顶点1420a、1420b、1410的第一三角形;具有顶点1420b、1420c、1410的第二三角形;具有顶点1420c、1420d、1410的第三三角形;以及具有顶点1420d、1420a、1410的第四三角形。系统420确定从第一三角形的中心至顶点1420c、1420d的距离矢量、从第二三角形的中心至顶点1420a、1420d的距离矢量、从第三三角形的中心至顶点1420a、1420b的距离矢量以及从第四三角形的中心至顶点1420b、1420c的距离矢量都具有负极性(即指向3-d模型的内侧)。因此,系统420确定顶点1410是偏移顶点(或突出顶点)。

类似地,系统420选择由以下四个三角形共享的顶点1430:具有顶点1440a、1440b、1430的第五三角形;具有顶点1440b、1440c、1430的第六三角形;具有顶点1440c、1440d、1430的第七三角形;以及具有顶点1440d、1440a、1430的第八三角形。系统420确定从第五三角形的中心至顶点1440c、1440d的距离矢量、从第六三角形的中心至顶点1440a、1440d的距离矢量、从第七三角形的中心至顶点1440a、1440b的距离矢量以及从第八三角形的中心至顶点1440b、1440c的距离矢量都具有正极性(即指向3-d模型的外侧)。因此,系统420确定顶点1430是偏移顶点(或凹陷顶点)。

图14c示出了根据图13所示的计算机实现过程的、在移除图14a的示例3-d模型的偏移顶点1410、1430之后的示例表面。系统识别顶点1410的第一最接近的相邻顶点1420a和第二最接近的相邻顶点1440a,并且将顶点1410、1430分别移位至相邻顶点1420a和1440a。在从偏移顶点至其相邻顶点的距离都相等的情况下,系统420可以选择相邻顶点中的任何一个,并且将偏移顶点移位至所选择的相邻顶点。系统420还移除重叠的三角形(例如图14b的第一三角形、第四三角形、第五三角形和第八三角形)。

图14d示出了根据图13所示的计算机实现过程的、在修整3-d模型1450的偏移顶点之前的示例3-d模型1450以及在修整偏移顶点之后的示例3-d模型1480。在一个实施方式中,在如图11和图12所示合成正交表面之后获得3-d模型1450。

在图14d中,3-d模型1450包括顶点1470和相邻顶点1460a、1460b…1460f。系统420通过相对于图13、14a和图14b详细描述的过程确定顶点1470是偏移顶点(例如突出顶点),这是因为共享顶点1470的三角形的所有距离矢量都具有负极性(即指向3-d模型1450的内侧)。因此,系统420将顶点1470移位至其最接近的相邻顶点1460d,并且移除重叠的三角形。

图15是示出了根据实施方式的合成3-d模型的侧表面的计算机实现过程的流程图。在一个实施方式中,图15中的步骤是图8中的步骤840的一部分。因此,图15中的步骤由图4的系统420(例如表面优化模块440)来执行。在其他实施方式中,其他实体可以执行步骤中的一些步骤或所有步骤。同样,实施方式可以包括不同和/或另外的步骤,或者以不同的顺序执行步骤。

系统420从3-d模型的多个顶点中选择(1510)目标顶点。系统420确定(1520)共享目标顶点的表面(例如三角形)是否是具有基本类似取向的侧表面。在一个方法中,系统420根据表面的法矢量确定共享目标顶点的表面的取向。在一个方法中,系统420获取共享目标顶点的表面的平均取向(例如法矢量的平均矢量)。如果表面的取向从平均取向偏离预定取向范围(例如预定矢量范围),则系统420确定该表面不是侧表面。如果共享目标顶点的表面的取向在距平均取向的预定矢量范围内,则系统420确定该表面是侧表面。

响应于确定共享目标顶点的表面是侧表面,系统420使目标顶点移位(1530)。在一个方法中,目标顶点移位至该目标顶点最接近的相邻顶点。系统420移除(1540)任何重叠的表面。侧表面被有效地合成(或合并)为单个表面。

响应于在步骤1520中确定共享目标顶点的表面不是侧表面,系统420进行至步骤1550。

系统420确定(1550)是否需要检查另外的顶点。响应于确定需要检查另外的顶点,系统420进行至步骤1510并且从3-d模型的多个顶点中选择另一目标顶点。如果检查了所有顶点,则系统420结束(1560)合成3-d模型的侧表面的过程。

图16示出了根据图15所示的计算机实现过程的、在合成3-d模型1610的侧表面之前的示例3-d模型1610以及在合成侧表面之后的示例3-d模型1650。

在图16中,3-d模型1610包括顶点1620和相邻顶点1630a、1630b、1630c。顶点1620由以下三角形共享:具有顶点1630a、1630b、1620的第一三角形;具有顶点1630b、1630c、1620的第二三角形;以及具有顶点1630a、1630c、1620的第三三角形。系统420分别获取第一三角形、第二三角形和第三三角形的法矢量v1、v2、v3。系统420获取平均法矢量vavg,并且确定法矢量v1、v2、v3在距平均矢量的预定矢量范围内。因此,系统420确定共享顶点1620的第一三角形、第二三角形和第三三角形是侧三角形。

系统420将顶点1620移位至其最接近的相邻顶点1630a。在从由侧三角形共享的公共顶点至其相邻顶点的距离都相等的情况下,系统420可以选择相邻顶点中的任何一个,并且将顶点1620移位至所选择的相邻顶点。系统还移除重叠的三角形(例如共享顶点1620的第一三角形和第三三角形)。因此,第一三角形、第二三角形和第三三角形被有效地合并成具有顶点1630a、1630b、1630c的单个三角形。

图17是示出了根据实施方式的平衡3-d模型的边的计算机实现过程的流程图。在一个实施方式中,图17中的步骤是图8中的步骤850的一部分。因此,图17中的步骤由图4的系统420(例如表面优化模块440)来执行。在其他实施方式中,其他实体可以执行步骤中的一些步骤或所有步骤。同样,实施方式可以包括不同和/或另外的步骤,或者以不同的顺序执行步骤。

系统420从3-d模型的多个顶点中选择(1710)目标顶点。系统420确定(1720)目标顶点是否由至少三个表面(例如三角形)共享。响应于确定目标顶点由至少三个表面共享,系统420确定(1730)在目标顶点处是否形成有两个90°角。响应于确定在目标顶点处形成有至少两个90°角,系统420识别(1740)分别用目标顶点作为其一端的最长边和最短边。

系统420基于所识别的最长边和最短边来使目标顶点移位(1750)。在一个方法中,系统420获取最长边的长度与最短边的长度之间的差,并且将目标顶点朝向最长边的另一端移位该差的一半。

响应于在步骤1720中确定目标顶点不是由至少三个三角形共享或在步骤1730中确定在目标顶点处未形成有至少两个90°角,系统420进行至步骤1760。

系统420确定(1760)是否需要检查另外的顶点。响应于确定需要检查另外的顶点,系统420进行至步骤1710并且从3-d模型的多个顶点中选择另一目标顶点。如果检查了所有顶点,则系统420结束(1770)平衡3-d模型的边的过程。

图18示出了根据图17所示的计算机实现过程的、在平衡3-d模型1810的边之前的示例3-d模型1810以及在平衡边之后的示例3-d模型1880。在一个实施方式中,在如图15和图16所示合成侧表面之后获得3-d模型1810。

在图18中,3-d模型1810包括顶点1820和相邻顶点1830a…1830e。系统420确定顶点1820具有共享顶点1820的五个三角形,并且在顶点1820处形成有两个90°角。因此,系统420平衡共享顶点1820的3-d模型1810的边。在一个方面中,系统420识别共享顶点1820的最长边1835a和最短边1835b。系统420获取边1835a的长度与边1835b的长度之间的差,并且将顶点1820朝向顶点1830a移位该差的一半。因此,与平衡之前的3-d模型1810相比,平衡之后的3-d模型1860具有长度更平衡的边。

图19a示出了根据一个实施方式的在对3-d模型1910执行表面优化之前的包括六面体模型的示例3-d模型1910以及在执行表面优化之后的示例3-d模型1950。如图19a所示,通过如相对于图8至图18详细描述的那样执行表面优化,平滑了3-d模型1910的粗糙表面或凸凹表面。

图19b示出了根据一个实施方式的在对如图7e所示的包括六面体模型的3-d模型790执行表面优化之后的示例3-d模型1990。与图7e中的在没有执行如本文所公开的表面优化的情况下的3-d模型790相比,3-d模型1990包括平滑的表面,并且被优化成具有比3-d模型790更真实的形状。

图19c是根据实施方式的图19b所示的示例3-d模型1990的部分1992的放大图。在图19c所示的示例图中,3-d模型1990的表面包括多个三角形以表示人类头骨的复杂形状。

计算机器架构

图20是示出了能够从机器可读介质读取指令并在处理器(或控制器)中执行它们的示例机器的部件的框图。具体地,图20以计算机系统2000的示例形式示出了机器的图形表示,在计算机系统2000内可以执行指令2024(例如软件或程序代码),指令2024用于使机器执行本文中例如使用图1至图19讨论的方法中的任何一个或更多个。在替选实施方式中,该机器操作为独立的装置或者可以与其他机器连接(例如联网)。在联网部署中,机器可以在服务器-客户端网络环境中以服务器机器或客户端机器的功能操作,或者可以操作为对等(或分布式)网络环境中的对等机器。

该机器可以是服务器计算机、客户端计算机、个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、智能电话、网络设备、网络路由器、交换机或网桥,或能够(顺序地或以其他方式)执行指定要由该机器采取的动作的指令2024的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”还应当被认为包括单独地或共同地执行指令2024以执行本文所讨论的方法中的任何一个或更多个的机器的任何集合。

示例计算机系统2000包括一个或更多个处理器(一般地,处理器2002)(例如中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、一个或更多个专用集成电路(asic)、一个或更多个射频集成电路(rfic)或这些的任何组合)、主存储器2004和静态存储器2006,它们被配置成经由总线2008相互通信。计算机系统2000还可以包括图形显示单元2010(例如等离子体显示面板(pdp)、液晶显示器(lcd)、投影仪或阴极射线管(crt))。计算机系统2000还可以包括字母数字输入装置2012(例如键盘)、光标控制装置2014(例如鼠标、轨迹球、操纵杆、运动传感器或其他指示工具)、存储单元2016、信号生成装置2018(例如扬声器)以及网络接口装置2020,它们也被配置成经由总线2008进行通信。

存储单元2016包括机器可读介质2022,在机器可读介质2022上存储有用于实现本文所述方法或功能中的任何一个或更多个的指令2024。指令2024也可以在计算机系统2000执行指令2024期间全部或至少部分地驻留在主存储器2004内或处理器2002内(例如处理器的高速缓冲存储器内),主存储器2004和处理器2002也构成机器可读介质。可以经由网络接口装置2020通过网络2026发送或接收指令2024。

虽然机器可读介质2022在示例实施方式中被示出为单个介质,但是术语“机器可读介质”应当被认为包括能够存储指令(例如指令2024)的单个介质或多个介质(例如集中式或分布式数据库或关联的高速缓冲存储器或服务器)。术语“机器可读介质”还应被认为包括能够存储由机器执行并且使机器执行本文所公开的方法中的任何一个或更多个的指令(例如指令2024)的任何介质。术语“机器可读介质”包括但不限于呈固态存储器、光学介质和磁介质的形式的数据存储库。

另外的配置考虑

在一个方面中,本文所公开的原理可以应用于医学应用。例如,可以基于数字成像和医学通信(dicom)文件格式的2-d截面图像来生成虚拟3-d模型。3-d模型可以由3-d模型数据来表示,该3-d模型数据可以转换成任何常规的3-d描述格式(例如stl格式、3dmax的3ds格式、maya的obj格式等)。可以视觉地呈现3-d模型,以帮助确定患者的医疗状况、隔离身体部位的结构问题的原因,或者模拟在执行一定操作(例如牙科植入、整形手术等)之后的情况。此外,可以通过3-d打印将3-d模型呈现为有形的形式,以帮助准备用于手术的医疗设备、生成更换身体部位等。

本文中所公开的原理还可以应用于使用3-d模型的其他应用(例如3-d动画、游戏或3-dcad等)。

所公开的配置的优点包括生成包含六面体模型的虚拟3-d模型,该六面体模型可以精确地表示具有复杂形状的对象(例如彼此盘绕在一起的对象或置于另一对象内的对象)。例如,用户可以在2-d截面图像上选择几个对象(例如骨骼、动脉、韧带、任何器官或其任何组合),并且生成没有未选择的身体部位的局部3-d模型,以表示如何在虚拟3-d空间中构造所选择的部位。此外,通过基于多个虚拟六面体模型来生成3-d模型,确保了3-d模型具有闭合形状,这使得3-d打印能够精确地执行。

此外,通过如本文所公开的对包括六面体模型的3-d模型执行表面优化,可以在处理资源(例如处理器线程、存储装置容量等)方面以高效的方式平滑3-d模型的粗糙表面或凹凸表面。例如,通过执行如本文所公开的表面优化,待分析以用于平滑包括数千万个六面体模型的3-d模型的表面的顶点和表面(例如三角形)的数量可以减少一个数量级。因此,可以节省处理资源。

在整个说明书中,多个实例可以实现被描述为单个实例的部件、操作或结构。虽然一个或更多个方法的各个操作被示出和描述为单独的操作,但是所述各个操作中的一个或更多个可以并行地执行,并且不需要按照所示的顺序执行操作。作为示例配置中的单独部件呈现的结构和特征可以被实现为组合结构或部件。类似地,作为单个部件呈现的结构和功能可以被实现为单独的部件。这些或其他变型、修改、添加和改进落在本文中的主题的范围内。

某些实施方式在本文中被描述为包括逻辑或多个部件、模块或机构,例如,如图4所示。模块可以构成软件模块(例如在机器可读介质上或在传输信号中实现的代码)或硬件模块。硬件模块是能够执行某些操作的有形单元,并且可以以某种方式配置或布置。在示例实施方式中,一个或更多个计算机系统(例如独立的客户端或服务器计算机系统)或计算机系统的一个或更多个硬件模块(例如处理器或一组处理器)可以通过软件(例如应用或应用部分)被配置为操作以执行如本文所述的某些操作的硬件模块。

在各个实施方式中,硬件模块可以以机械或电子的方式来实现。例如,硬件模块可以包括被永久配置成(例如,作为专用处理器如现场可编程门阵列(fpga)或专用集成电路(asic))执行某些操作的专用电路或逻辑。硬件模块还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路(例如,包含在通用处理器或其他可编程处理器内)。应当理解,在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件模块的决定可以由成本和时间考虑来驱动。

本文描述的示例方法的各种操作可以至少部分地由被临时配置(例如通过软件)或被永久配置成执行相关操作的一个或更多个处理器例如处理器2002来执行。不管是被临时配置还是被永久配置,这样的处理器可以构成操作以执行一个或更多个操作或功能的处理器实现模块。在一些示例实施方式中,本文所引用的模块可以包括处理器实现模块。

一个或更多个处理器还可以操作以支持在“云计算”环境中或作为“软件即服务”(saas)的相关操作的性能。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)来执行,这些操作可以经由网络(例如因特网)以及经由一个或更多个适当的接口(例如应用程序接口)(api))来访问。

某些操作的性能可以分布在一个或更多个处理器中,不仅驻留在单个机器内,而且部署在多个机器之间。在一些示例实施方式中,一个或更多个处理器或处理器实现模块可以位于单个地理位置中(例如在家庭环境、办公室环境或服务器场内)。在其他示例实施方式中,一个或更多个处理器或处理器实现模块可以分布在多个地理位置之间。

在对被存储为机器存储器(例如计算机存储器)内的位或二进制数字信号的数据的操作的算法或符号表示方面呈现了本说明书的一些部分。这些算法或符号表示是数据处理领域中的普通技术人员用于将其工作的实质传达给本领域技术人员的技术的示例。如本文所使用的,“算法”是导致期望结果的自洽操作序列或类似处理。在该上下文中,算法和操作涉及物理量的物理操纵。通常但不一定,这样的量可以具有能够被机器存储、访问、传送、组合、比较或以其他方式操纵的电信号、磁信号或光信号的形式。主要是出于公共使用的原因,有时使用诸如“数据”、“内容”、“位”、“值”、“元件”、“符号”、“字符”、“术语”、“数字”、“数值”等词来指代这样的信号是方便的。然而,这些词仅仅是方便的标签,并且要与适当的物理量相关联。

除非另有明确说明,否则本文使用诸如“处理”、“运算”、“计算”、“确定”、“呈现”、“显示”等词的讨论可以指机器(例如计算机)的动作或处理,所述机器对表示为一个或更多个存储器(例如易失性存储器、非易失性存储器或其组合)、寄存器或接收、存储、发送或显示信息的其他机器部件内的物理(例如电子、磁或光)量的数据进行操纵和转换。

如本文所使用的,对“一个实施方式”或“实施方式”的任何引用表示结合该实施方式描述的特定元件、特征、结构或特性包括在至少一个实施方式中。在说明书中的各个地方出现的短语“在一个实施方式中”不一定都指代同一实施方式。

可以使用表述“耦接”和“连接”以及它们的衍生词来描述一些实施方式。例如,可以使用术语“耦接”来描述一些实施方式,以指示两个或更多个元件处于直接物理或电接触。然而,术语“耦接”也可以意味着两个或更多个元件彼此不直接接触,但仍然彼此协作或相互作用。实施方式不限于该上下文。

如本文所使用的,术语“包括(comprise)”,“包括(comprising)”、“包含(includes)”、“具有(has)”、“具有(having)”或其任何其它变体旨在覆盖非排他性包含。例如,包括一列元件的过程、方法、物品或设备不一定仅限于这些元件,而是可以包括未明确列出的或这些过程、方法、物品或设备固有的元件。此外,除非有明确相反的说明,否则“或”是指包容性的“或”而不是排他性的“或”。例如,通过以下中的任一个,条件a或b满足:a为真(或存在)且b为假(或不存在);a为假(或不存在)且b为真(或存在);以及a和b都为真(或存在)。

此外,使用“一个”或“一”来描述本文实施方式的元件和部件。这只是为了方便并给出本发明的一般意义。该描述应当被阅读为包括一个或至少一个,并且单数也包括复数,除非明显地另有所指。

在阅读本公开之后,本领域技术人员将会理解用于通过本文所公开的原理生成包括虚拟六面体的虚拟3-d模型的3d模型数据的系统和过程的另外的替选结构和功能设计。因此,虽然已经示出和描述了特定实施方式和应用,但是应当理解,所公开的实施方式不限于本文公开的精确构造和部件。在不脱离所附权利要求限定的精神和范围的情况下,可以在本文所公开的方法和装置的布置、操作和细节中进行对本领域技术人员而言明显的各种修改、变化和变型。

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