3d建模系统的制作方法

文档序号:6422349阅读:461来源:国知局
专利名称:3d建模系统的制作方法
技术领域
本发明的领域是计算机系统上的3D建模。更具体的是,本发明自身涉及在给定物体的若干2D图像“片”的情况下,构造立体物体的3D计算机表示的方法。
背景技术
有许多用于生成真实世界三维物体的图像片的专门技术。例如,在医学成像领域中,依靠超声波、X射线及磁共振技术的扫描设备可随着扫描探测器在身体结构上缓慢的移动来捕捉各种身体结构的一系列图像片(image slices)。然而,将这些2D片组合成身体结构的3D计算机模型却存在一些问题。
现有技术中用于将一组2D图像片构造成立体物体的3D模型的常用技术是将每个2D图像中的每个图像元素(或像素)(x,y)迭代映射到3D空间中的体积元素(volume element)(或体素)(x’,y’,z’);如果已知每个2D图像片相对于某个固定参照点(或用于构造3D模型的其它图像片)的方位,则将2D像素转化成3D体素是相对简单直接的数学练习。然而,这是计算上相对费时间的运算,因此用软件来完成时将会是非常慢的运算(在硬件中完成此类映射的个人计算机的商用视频加速卡通常没有)。还有,因为体素典型地是用多个浮点值来表示,所以当构造任何有用的复杂性模型时,在任何比高端图形工作站小型的计算机系统上以这种方法建立3D模型会给系统资源施加极大的负担。
因此,在不将单个2D图像片像素直接映射到3D体素的情况下,能够从一组2D图像片构造立体3D模型是有用的。此外,希望的是能够利用应用广泛的加速硬件电路来完成这个模型的构建。
基于体素的典型3D显示装置,特别是在医学成像领域中,在其快速操作旋转、视点及3D模型外观以帮助用户辨别和/或诊断特定结构或畸形的能力上受限。还希望能够进行此类操作,特别是在常用计算硬件上。

发明内容
本发明涉及基于计算机的3D建模系统,用于从多个具有相互空间关系的2D横截面数据图像构造虚拟3D表示。通过从数据源模块提取多个数据图像及相关的定向和定位信息、用框架生成模块为每个数据图像生成平面框架、用纹理映射模块将每个数据图像映射到其相应框架上以作为纹理、用旋转变换模块依据定向信息将每个平面框架进行旋转、并用平移变换模块依据定位信息将每个平面框架进行平移来构造虚拟的3D表示。
一旦构造完虚拟的3D表示,可对其进行渲染以用来查看和/或操作。观察虚拟3D表示可通过将其显示在屏幕上并进行一个或多个操作来实现,包括旋转表示、使用剪裁平面进入到表示中、调整表示的半透明度、透明度、颜色、对比度或亮度、调整表示的大小、动态地将视点平移到表示中、或动态地相对于表示移动视点。


在附图中相同的数字表示类似部件图1为3D建模系统的结构图,展示了其每个部件模块;图2A描述了具有角度传感器的探测器经过一个物体,捕获了该物体的一系列图像片;图2B描述了按获取顺序排列的一系列图像片以及相关的定向和定位信息;图2C描述了按最初获取角度排列的一系列图像片;图3描述了当扫描物体用于3D计算机建模时,图像片在实际空间中的获取方向(沿Z轴);图4A描述了前和后矩形平面图像框架;图4B描述了被纹理映射到平面框架上的图像;图4C描述了在3D空间中被旋转到某个方位的图形平面框架图4D描述了在3D空间中被平移到某个位置的图形平面框架;
图5描述了连接到超声波扫描设备和角度传感器的探测器,且超声波扫描设备和角度传感器与个人计算机连接;及图6描述了用于平面框架“前侧”和“后侧”的典型的框架顶点坐标。
具体实施例方式
如图1所示,基于计算机的3D建模系统21包括由几个模块组成的软件。联合运用这些模块以从多个2D横截面数据图像和与每个数据图像相关的相互空间关系数据来生成虚拟的3D表示。如图5所示,3D建模系统21的优选实施例可以是医学成像设备的子系统,虽然此处公开的3D建模系统21可使用任何类型的表示任何物质或结构的一系列横截面的虚拟数字图像。连接到旋转角度传感器6的探测器4可缓慢和均匀地在被扫描细胞组织8上移动,且可由标准医学超声波扫描设备10捕获连续的图像片。扫描器和角度传感器可连接到个人计算机2,这样软件可获取图像片及其在3D空间中的方位角。图像片在计算机上的典型格式是位图,但也可使用其它格式。因为探测器4的移动可由机械装置(未示出)完成,且其移动速率和方向已知,所以每个图像在3D空间中的偏移可由公知的位置确定设备很容易地确定。这种位置确定设备也可连接到个人计算机2上,以用来同时获取每个图像的位置。
可向计算机提供图像片、方位角度和位置信息的超声波扫描器的某些实施例已在美国09/687128号专利申请及PCT/US01/32392号PCT申请中公开,公开内容并入此处以供参考。任意一组表示任意物体(不只是细胞组织8)的一系列横截面片的数字图像皆可被建模,并以这里描述的方式使用。此类图像可包括但不限于,X射线、磁共振成像、计算机化轴向X射线断层摄影(computerized axial tomography)、超声波、正电子发射X射线断层摄影、放射性核素成像(radionuclideimaging)等。只要有足够的图像来构造模型,则此类图像甚至可包括类似来自于地震或其它系统的地质横截面的图像。
获得图像的方式对此处公开的3D建模系统21而言不是关键。然而,为使如何获得图像及接下来如何被3D建模系统21所用的讨论变的容易,本申请将一般地讨论在随后提到的应用中公开的超声波实施例。
为便于讨论,空间轴可随意标注。假设待扫描物体是患者的细胞组织,且受检患者仰卧以进行扫描,则X轴从一个肩延伸到另一个肩(X轴正方向自患者右肩指向外侧),Y轴与患者身体垂直(Y轴正方向自患者胸部指向上侧),且Z轴从头延伸到脚(Z轴正方向自患者的脚底指向外侧)。在优选实施例中,可通过在Z轴正向上移动扫描探测器来获取连续的扫描图像,如图3所示,但探测器在被成像患者上沿任何方向的移动均能产生可建模的图像。
如图2A所示,探测器4可自由地在两个方向上(绕X和Z轴)倾斜以跟随患者组织12(例如胸部的皮肤)的轮廓,同时保持与组织或皮肤12垂直。探测器绕X和Z轴的旋转角度可由角度传感器6跟踪,然后其可与图像互相关联,这样每个图像均具有自己的定向(旋转角度)信息。探测器横向马达(未示出)的速度可通过来自角度传感器6的反馈来控制,这样该马达沿Z轴以可变的速率移动探测器,使在皮肤的轮廓角度改变的情况下保持探测器在皮肤12上的速度恒定。因此,因为图像捕捉速率可由扫描硬件固定并保持恒定,所以在该实施例中,已捕捉图像片14的顶部边缘互相之间等距且关于Z轴互相平行。
然而,重要的是,本发明不要求已获得图像片14的任何边缘沿任何轴等距和互相之间平行。只要为每个图像搜集到充足的定向(旋转角度)信息,再结合关于每个图像的位置信息,则图像可如此处所述的这样被建模和使用。例如,旋转角度传感器6可收集三个轴上的角度信息,且可使用能确定探测器4在3D空间中或相对于其它图像的位置的设备,来确定一个图像与其它图像之间的距离。此类位置确定设备可包括计数器,计数器连接到推进探测器4的驱动马达上并简单地计数与距离相关的马达的旋转,或与探测器4相连接的加速计,或用于探测器4的局部GPS或者激光跟踪设备,或光学移动传感器如用于连接到探测器4的光学鼠标的光学移动传感器,或许多跟踪探测器4移动和/或位置的其它方法。来自角度和位置传感器的信号可同时保存在和图像相同的数据包中,或分别收集并随后与图像相关。典型的相关(correlation)方法是使用给图像和角度/位置信息都分配时间值的定时机构,随后匹配这些信息,但也可使用其它合适的相关方法。
如图2B所示,典型的扫描操作的结果是一组2D图像16,连同与每个2D图像16匹配的定向(旋转角度)信息18和定位信息20。从这些要素,通过仅仅将所有2D图像16在3D空间中合并到一起,3D建模系统21构造立体3D表示31,如图2C所示(虽然被描述为在图2C中显示器上的图像,但是“3D表示31”实际上是计算机存储器中的一组数据结构,且只有在3D表示已经被计算机“渲染”并随后显示出来之后才变为可识别的图像)。
如图1所示,此处所公开的软件包括5个模块数据源模块22、框架生成模块24、纹理映射模块26、旋转变换模块28及平移变换模块30,这些模块共同将单个2D图像16及定向18和定位值20转化成源解剖组织的3D表示31,该3D表示可在主计算机系统32(图2C)上被渲染和操作。每个模块将在下面详细解释。模块的数目可任意选择以进行讨论,且可在不限制此处所描述的概念的情况下被合并成较少或扩展成较多的数目。
1.数据源模块如图1所示,数据源模块22为主系统的扫描和角度传感器部分提供了虚拟界面。数据源模块负责从超声波扫描设备10接收片图像数据14,并且如果有必要的话,将图像数据转化成最适于纹理映射的格式。在优选实施例中,可将图像从扫描设备输出的专有格式转化为微软Windows Direct3D系统可接收的标准Windows位图格式,用于纹理映射。如果图像片在其适合于纹理映射之前必须被调整大小、裁剪或修正颜色,则数据源模块22还负责转换图像片并使其标准化。例如,数据源模块可将图像转化为原来的灰度表示。最后,数据源模块22负责接收和标准化(有时插值)由角度传感器6发送的定向数据18,且负责分配旋转角度给单个片图像,及负责接收来自定位系统的定位信息20并使其标准化。数据源模块还在必要的时候转化与每个图像的角度和位置相关的单位测量。
在优选实施例中,数据源模块22接收定向数据18、定位数据20以及超声波2D图像16数据。在这些数据到达数据源模块22时,它们可能已被获取并被用于数据处理软件系统中的某处,本发明可把该系统作为子模块连接。因此,在优选实施例中,数据源模块22不必亲自直接参与通过主计算机32(图2C)中的串联(serial)和网络连接从源硬件装置获取数据——虽然会毫无疑问地扩展到使用已充分理解且记录的现有技术来承担这些任务。相反,在优选实施例中,数据源模块22只需亲自参与和主软件系统连接、从该主软件系统获取数据、将数据转化为适于其它模块使用的格式及按需将该数据分配到其它模块。
连接到主软件系统的接口——类似于到其它模块的接口——可通过使用良好定义的公用方法(public methods)将所有组件实现为标准C++对象来实现。数据源模块22通过调用主软件系统的公用方法来从主软件系统提取数据,且其它对象随后通过调用数据源模块22上的公用方法,从数据源模块22检索该数据。在内部,为消除主软件系统和其它模块之间的差异,数据源模块22只需将从主软件系统提取的角数据从以度数表示的角度转化为以弧度表示的角度,并给每个2D图像16添加标准的Windows位图标题。
关于实际如何获取图像及定向18和定位数据20的硬件特定的细节在数据源模块22内部,向其它模块“隐瞒”了这些细节。因此,此处公开的3D建模系统21可仅仅通过改变这样一个模块来与实际上使用任何类型的数据获取硬件的成像系统相兼容。虽然以上讨论使用超声波图像作为实例,但是,在将数据转化为可用于各种计算机系统和操作系统的格式的操作上作适当的微小变化后,也可使用其它类型的图像。
2.框架生成模块在优选实施例中,框架生成模块24(图5)可从数据源模块22接收连续的位图2D图像16及其定向18和定位信息20。框架生成模块24负责生成表面(平面框架),位图2D图像16将在构造中在3D模型内被映射到这些表面上。
在优选实施例中,探测器4在受检患者组织上的移动范围被限制为绕X和Z轴旋转,因此平行于Z轴的矢量可经过每个位像的一个顶角。如图4A所示,该角成为框架生成模块24构造每个框架的参照点34。参照点34实际上可以是每个框架上的任意点;在优选实施例中,在每个框架上选择相同的角点,以简化计算并使必须与每个2D图像16相关的额外数据量最少。此外,也可实现在图像获取过程中绕X、Y和Z轴自由旋转的实施例。这仅仅需要一个额外的轴角度传感器,以及对与每个2D图像16相关的定向18(旋转)及定位数据20包进行微小修正,以传送额外信息。
图4A进一步展示了矩形平面框架36的每个面所需的四个共面的顶点。参照点34顶点可被分配给在其中构造模型的三维坐标系统的原点。其它三个顶点可相对于参照点34顶点定位,以使平面框架36的相对尺寸与源图像的相对尺寸匹配。
在优选实施例中,3D建模系统21可在微软Windows个人计算机上运行且可使用微软Direct3D 3D子系统所提供的服务程序(虽然3D建模系统21在使用不同操作系统和3D子系统的其它类型的计算机系统上也可工作——例如,在使用OpenGL的UNIX系统上)。Direct3D不提供对矩形图元(primitives)的支持。因此,在优选实施例中,框架生成模块24可通过从四个成组的顶点生成两个邻接的三角形图元36a、36b来为每个位像生成矩形平面框架36。
为使平面框架从“两面”均可视,典型地,必须使两面均具有纹理。为方便这样做,可在相同物理位置的四个顶点(以颠倒的顺序)上映射两个额外的三角形,以生成平面框架36的“后侧”38。当然,如果不需要从“后侧”观看,或者如果使用的3D系统本身就支持从前或后观看纹理映射表面,则只需生成(且随后生成纹理)一个平面框架,“前侧”36。
生成平面框架的方法取决于使用的3D子系统。如果使用Direct3D,可生成合并有纹理映射坐标的自定义顶点格式。典型的纹理坐标在从左到右及从上到下的
范围内。如图6所示,坐标可被附到组成前平面框架36“矩形”的四个顶点上。然后,为生成平面框架38矩形的“后侧”,位于相同物理位置的四个顶点坐标可如图6所示以“颠倒的顺序”被映射。
在3D建模中的这个类型的平面框架生成是在3D计算机建模技术中好的常用技巧。在很多参考文献中都讨论了有代表性的建模技术,包括Peter Walsh、Adrian Perez的Advanced 3-D Game Programmingusing DirectX8.0(Wordware Publishing,Inc.2001),其公开内容并入此处以供参考。以上讨论仅仅是如何实现这种平面框架生成的实例,还有无数生成此类平面框架36、38的其它方法。如上所述,其它操作系统和3D子系统也可用于产生同等结果。
每次位像被传输到框架生成模块24,最终结果均为图4A和6所描述的双面矩形平面框架36、38(构造自四个三角形图元36a、36b)。
3.纹理映射模块纹理映射模块26接收连续的位图2D图像16及由框架生成模块24为其构造的平面框架36、38。纹理映射模块26负责将每个位图2D图像16贴到其平面框架36上。
纹理映射是2D图形图像被粘贴到3D多边形表面作为“纹理”的过程。用于纹理映射的有效技术已在现有技术中充分记载,例如上述Walsh/Perez参考文献。典型地,纹理映射被用于3D应用中,以向渲染的物体提供更好的视觉真实感——例如,石雕图案的位像可被贴到3D场景内的表面以使该表面看起来像石墙。纹理映射是复杂的过程,包括坐标映射及矩阵从动拉伸(matrix-driven stretch)及剪切变换,以确保图形在其贴附的3D表面上看起来恰当,假设已确定该表面的形状和其观看角度。这种纹理映射在3D图形中很常用,以致于在实践中通常出售的用于个人计算机的3D视频加速卡以能够直接高速完成纹理映射的硬件电路(circuitry)为特征。这种视频加速卡的典型实例包括NVIDIA GeForce4 Ti4600和ATI Radeon Rage 128-bit GL,但如下面所述,此类卡的使用不是必不可少的。
3D建模系统21的优选实施例可在具有Direct3D服务程序的微软Windows上运行,该服务程序可直接与计算机视频加速卡上的纹理映射电路对接。如果必要的话,高度优化的Direct3D系统软件可在没有这种视频加速卡电路的情况下进行纹理映射。因此,此处所述软件必须作非常少的纹理映射工作。纹理映射模块的软件可仅仅将合适的纹理坐标分配给限定每个平面框架36的前侧的每个顶点,这样,每个位像可从左边缘到右边缘、从顶边缘到底边缘被映射到该平面框架36,从而可在没有裁剪、遮蔽或留下任何未覆盖的框架部分的情况下精确且完整地覆盖框架前侧。类似地,纹理坐标可被分配给限定每个平面框架36的后侧的每个顶点,这样,同一位像的镜像可被映射以完全覆盖平面框架38的后侧。
如图4B所示,每次位图(或其他合适的格式)图像及在框架生成模块中生成的平面框架36、38被传输到纹理映射模块,最终结果均为3D空间上的双面2D图形平面框架40。
4.旋转变换模块旋转变换模块28接收由纹理映射模块26构造的连续的双面2D图形平面框架40及图形平面框架40的定向(旋转)信息18。旋转变换模块使用定向信息18以在3D空间上相对于三个分轴旋转和合适地定向每个图形平面框架40。
如前所述,构造每个平面框架36时可使用位于坐标轴原点的其固定参照点34。该参照点34可作为图形平面框架40旋转时所绕的“支点”。又如前所述,在优选实施例中,每个平面框架36可能只有两个自由度且可绕X和Z轴旋转,但不绕Y轴旋转。因此,在虚拟3D空间中确定每个图形平面框架40的方向是简单的,即构造适当的4×4矩阵以将点绕Z轴旋转到特定的Z轴旋转角度(图4C中的θ),然后将每个框架顶点乘以该矩阵,然后构造新4×4矩阵以将点绕X轴旋转到特定的X轴旋转角度(未示出),并将每个框架顶点乘以该矩阵。构造此类旋转矩阵所用的数学方法已在现有技术中完好记载并为本领域技术人员所公知,故不在此处赘述。
在另一种实施例中,每个平面框架可有三个自由度,且模型构造机理仍大体相同。普通参照点选在每个平面框架的相同位置上,虽然可选择任意的点,但通常选角点。该参照点34可被用作旋转的支点,及用于所有偏移位置值的偏移点(在下面的平移变换模块中实现)。然后,数据源模块22可把每个图形平面框架40的定向信息18(X轴旋转、Y轴旋转、Z轴旋转)和定位信息20(X轴偏移、Y轴偏移、Z轴偏移)适当结合到一起。全部其它图像操作可如上所述那样完成。矩阵深度(matrix depths)没有改变。虽然人们可使用每个平面框架上不同位置的参照点,或不同的参照点作为支点和偏移点,但是这将增加程序的复杂性。
每次图形平面框架40从纹理映射模块26传输到旋转变换模块28,最终结果为图4C中描述的正确定向的图形平面框架40。
5.平移变换模块平移变换模块30一般从旋转变换模块28接收连续的、正确定向的2D图形平面框架40及框架的定位信息20。平移变换模块30使用定位信息20以在虚拟3D空间中从参照点34适当地偏移或平移每个图形平面框架40。
如前所述,在优选实施例中,可在其支点角(参照点34)位于坐标轴原点处的情况下构造每个图形平面框架40;该支点角(参照点34)可在图形平面框架40经过旋转变换模块28后在原点处保持固定。在优选实施例中,定位(偏移)信息20相对于这个角来确定。虽然可使用不同于支点角(参照点34)的点作为支点和偏移点,但是选择这个角比较方便且可简化计算。
可用[X,Y,Z]向量的形式向平移变换模块30提供定位(偏移)信息20。在某些实施例中,可以固定速率获取超声波图像片14,且探测器4相对于患者皮肤表面12的轮廓的移动可保持恒定,从而每个偏移向量的长度保持一样,这样就简化了计算。然而,在其它实施例中,每个向量的每个分量可独立变化,这只稍微增加了计算复杂性。为在3D空间中将图形平面框架40偏移到正确位置,平移变换模块30可从特定的偏移向量构造4×4平移矩阵。然后,每个框架顶点均可乘以平移矩阵。在由偏移向量构造平移矩阵中包括的数学方法和编程方法是已在现有技术中完好记载的,并为本领域技术人员所公知,故不在此处赘述。
假设沿X轴收集到单行的一系列图像,如果行是直的,那么X轴偏移量将为0.0(或其它一些定值)。如果行不直,那么则需要收集每个图形平面框架40相对于每个平面框架上的共同参照点34的X轴偏移信息,且框架平移模块30可为每个图形平面框架40构造X轴偏移向量。假设细胞组织宽阔区域的图像以两行或多行图像的方式收集,则框架平移模块可取每个图形平面框架40的X轴偏移信息,并从该两行或多行图像“编织”3D模型。只要为每个2D图像16获取了充分的定向18和定位信息20,这些行就没有必要大体平行。然而,为实现模型的大体上完全覆盖,多行2D图像16的边缘应该接触或重叠。将在下面讨论的渲染引擎在构造模型时应该能够处理任何重叠。
每次图形平面框架40经过旋转变换模块达到平移变换模块,最终结果均为图4D中描述的正确定位的图形平面框架40。虽然Z轴未在图4D中示出,但可使用合适的偏移向量在Z轴上平移图形平面框架40。
6.模型渲染在使用上述技术构造模型之后,可使用由3D子系统和/或3D硬件处理的标准渲染技术渲染它。这些渲染技术及设备在本技术领域中是公知的,且实际上是当今所出售的每个个人计算机的一部分,所以就不需要在这里对其进行详细描述了。一般地描述典型渲染技术的参考文献是James D.Foley等人的Computer GraphicPrinciples and Practice(Addison-Wesley Pub.Co.2nd ed.1995),其公开内容并入此处以供参考,但还有许多其它参考文献。虽然3D建模系统的优选实施例被设计成在个人计算机上运行,但实际上可以使用任何类型的具有足够容量和渲染软件/硬件的数据处理装置。
通过使用构建在易于获得的3D加速卡中的功能部件,此处公开的3D建模系统解决用于从2D图像片组构造立体3D表示的现有技术的实际操作缺点。几乎当前所有构建在个人计算机和工作站中的3D加速卡以用于“纹理映射”的特定硬件电路为特色——“纹理映射”是一种技术,藉此技术2D位像可被映射到多边形网格上并由多边形网格围绕,以增加视觉上逼真的纹理到照片般逼真的3D场景的透视图。此处公开的3D建模系统影响该高性能硬件,以将3D体积建模成一组双面2D矩形框架——每个框架皆有源2D图像的纹理,而不是将3D体积建模成一组3D体素。严格来讲,该技术的结果不等同于将像素映射成体素,因为每个纹理元素(“纹素”)在3D模型中保持二维状态。然而,如果源图像片相对紧凑且互相之间相对于三个轴皆不平行,则显像通常是质量非常高的。此外,使用该建模技术,个人计算机上的建模和渲染性能通常特别突出。
3D建模系统的另一个优点是在使用已纹理映射的矩形表面的地方,“后面选择(back-face culling)”(从不朝向观察者的渲染处理映射表面除去)可在渲染和实时模型旋转过程中被很快的完成(典型地,这个选择可在加速电路中的高速专用硬件上完成),有助于更好的模型显示性能。相反,这种电路典型地不能在用体素构造的3D模型中使用的“点”上执行后面选择,因为该电路典型地被限于在如三角形一样的原始表面构造上的后面选择。
7.观察方法优选实施例的一个应用是医学诊断领域。一旦使用上述技术构造完模型,其可被渲染及随后被观察和操作以鉴别结构及诊断医学状况,比如癌症。例如,可获得胸部的图像并用上述技术构造模型,并随后渲染及查看图像以鉴别或诊断癌症或其它状况。可使用任何类型的横截面的系列图像,及任何类型的组织或物质。虽然讨论了超声波胸部组织图像作为实例,但是3D建模系统21并不局限于人类组织或医学诊断,且下面的观察方法可被用于任何构造自2D横截面图像的3D模型。
超声波图像可被获取和转化成待成像胸部的正确可靠的3D模型。模型的结构使普遍使用的基于个人计算机的3D图形卡上的快速渲染变的容易。绕轴的任何组合的任意旋转可由鼠标实现(或使用键盘控制,或使用构建在观察器界面内的按钮),这样,可从任意角度观察模型。可调整模型(或模型视点)的大小,这样可在屏幕上观察其较大或较小的尺寸。这些能力可使沿胸部模型边缘的异常能被轻易看到,而如果每次只能看到一个及只能“正面”看到单个的超声波框架,则异常可能非常难以被发现。
此外,由本发明构造的模型具有许多便于检测已建模细胞组织深处的异常的操作。一个此类操作依靠“剪裁平面”。模型首先被旋转至屏幕上期望的方位。然后,随着模型每秒被渲染多次,剪裁平面截面正视图进入(保持与屏幕平行)通过模型。因为剪裁平面进入到模型中,所以位于剪裁平面和观察器之间的所有模型部分被除去,这使得可以显示模型中渐进深度的横截面。这样,可从任意角度和在任意深度观察已建模组织的内侧。这使得可清楚看到其它可能漏检的(当只从一个特定方向观察时)异常或结构。使用剪裁平面时也可旋转模型以“雕刻(sculpt)”模型。
其它操作依然依靠透明度。既然此处公开的3D建模技术依靠2D纹理映射,那么可使用α通道(alpha channeling)使构成模型的图像框架具有透明度和部分透明度(另外被称为“半透明度”)。基本上,在渲染模型过程中,纹理被操作,这样可显示某些像素,或使其完全消失,或使其与模型中其“后面”的像素部分混合。此外,可操作混合像素的颜色以增强深度的表现,并提供其它可视信号。透明度和半透明度允许从“外侧”观察模型——人们仍可看到模型“内侧”的结构。利用部分透明度甚至可将视点动态地移动到模型中,且可实现模型的“飞过(fly through)”。在“飞过”过程中,视点的角度也可动态改变,这样,用户可在观察过程中“飞到”感兴趣的观测区域。这还提供了被建模结构的另一组“视图”,且进一步增强了医生检测异常的能力,这些异常使用查看超声波数据的标准技术可能难以看到的。
重要的是,为优化利用结合了半透明度的视图,优选实施例使用了显著不同于申请人已知的多种现有技术的一种技术。通过为每个颜色元素将数据存贮区域扩展一位或多位,在3D图形子系统内实现α通道,以将α通道信息与颜色数据联系到一起。当颜色元素由3D图形子系统渲染时,其颜色可与已存在于3D子系统的深度缓冲器(由于空间上“较深”的颜色元素先前处理)中的颜色值进行附加“混合”(到达由其α值控制的程度),且结果将最终显示在屏幕上并导致在该点出现部分的元素透明度,如下面将要更全面解释的。
在优选实施例中,位于每个模型框架上的每个纹素(纹理元素,与纹理映射图像上的像素本质上相同)的实际颜色数据是256个可能灰度值中的一个。虽然下面的讨论适用于纹素,但是相同技术除了可被用于3D纹理映射之外,还可被用于其他环境中使用的位像,且在这种情况下像素等同于纹素。因此,模型可通过使α字节(8位或256个不同的可能值)与模型的每个框架上的每个纹素相关来生成。当启用半透明度时,用户通过标准用户界面机构(就是,例如Windows标准轨迹杆控件)选择“阈值”(在包含的
范围内),或可使用预置的阈值。然后,每个纹素的α值按如下方法运算将每个纹素的特定色值从最大色值(255)中减去以得到运算值。运算值是这样的255的色值产生0,且后续递减的色值与递增的运算值相关。然后,每个运算值与阈值相比较。如果运算值大于(或等于)阈值,那么该纹素的α值被设为255(这将使得纹素被底层3D子系统渲染成完全不透明的)。如果运算值小于阈值,那么其除以某个用户可选择的或预置的值(例如8、16和32,它们是适当的除数,2的幂,也可以稍微地加速处理)。所得的数成为纹素的计算α值。以该方法计算纹素α值可使逐渐更亮的已着色纹素被渲染得越来越透明(以非线性方式),直到具有超过某个值的独特亮色的纹素不再被渲染(虽然有时可渲染成视觉上更舒适的效果,如果α值以某个小值“做最小值”——例如1或2——仅仅使纹素不从渲染完全消失)。以该方式实现半透明度可在结果显示中更好地保持可视深度信号,同时从框架除去许多较亮的着色“噪音”且允许干净的视图“进入”渲染的模型。
当运算α值时,为增强对比度,可修改纹素颜色数据的一个或多个颜色分量(如果灰度数据实际上已经为每个纹素被编码为几个颜色分量)。例如,具有小于255的运算α值的纹素使其绿和红颜色分量乘以某个用户可选择的值或预置值(可达255的最大结果分量值),使越来越透明的像素越来越“黄”。这趋向于增强在渲染中未修改的、不透明的灰度像素的外观对比度,且也可进一步增强深度信号。为操作对比度或其它观察参数,例如亮度或灰度系数,当特定纹素的色值下降到阈值以下,可对任何颜色分量进行许多其它数学操作。
虽然优选实施例使用256个灰度值,但是也可使用其它数目的灰度以构造和/或渲染模型,且上述操作技术同样可以很好地处理颜色数据。
权利要求
1.一种基于计算机的3D建模系统,用于从多个具有相互的空间关系的2D横截面的数据图像构造虚拟的3D表示,其包括一个数据源模块,依据所述相互的空间关系,可通过其提取所述多个2D横截面的数据图像,所述数据图像具有所述多个数据图像中的每个的定向和定位信息;一个框架生成模块,其能够为来自所述数据源模块的所述多个数据图像中的每个生成平面框架;一个纹理映射模块,其能够将来自所述数据源模块的所述多个数据图像中的每个映射到其相应的来自所述框架生成模块的平面框架上作为纹理;一个旋转变换模块,其能够使用所述定向信息,依据所述定向信息绕虚拟3D空间中的一个或多个轴旋转来自所述纹理映射模块的每个平面框架;一个平移变换模块,其能够使用所述定位信息,依据所述定位信息在虚拟3D空间中平移来自所述纹理映射模块的每个平面框架。
2.如权利要求1所述的基于计算机的3D建模系统,所述平移变换模块通过所述旋转变换模块接收来自所述纹理映射模块的每个平面框架。
3.如权利要求1所述的基于计算机的3D建模系统,所述数据源模块能够将所述多个2D横截面的数据图像转化为一种灰度表示。
4.如权利要求1所述的基于计算机的3D建模系统,所述数据源模块能够将与每个2D横截面的数据图像相关的所述定向信息从其自然的角度单位转化成弧度。
5.如权利要求1所述的基于计算机的3D建模系统,所述数据源模块能够将与每个2D横截面的数据图像相关的所述定位信息从其自然的测量单位转化成毫米的小数。
6.如权利要求1所述的基于计算机的3D建模系统,所述框架生成模块能够从两个邻接的三角形图元生成每个平面框架。
7.如权利要求1所述的基于计算机的3D建模系统,所述平面框架是双面平面框架。
8.如权利要求7所述的计算机建模系统,所述纹理映射模块能够将每个2D横截面的数据图像映射到所述相应的平面框架的每一面上以作为纹理。
9.如权利要求8所述的基于计算机的3D建模系统,所述纹理映射模块能够设置与每个所述平面框架的每面相关的所述纹理,以在没有裁剪、遮蔽或留下任何未覆盖的框架部分的情况下精确且完整地覆盖所述框架的每一面。
10.如权利要求7所述的基于计算机的3D建模系统,所述框架生成模块能够从四个三角形图元生成每个平面框架,两个图元构成所述框架的一面,两个图元构成所述框架的另一面。
11.如权利要求1所述的基于计算机的3D建模系统,进一步包括一个数据源,其包括一个与所述数据源模块进行数据交换的超声波扫描设备。
12.如权利要求11所述的基于计算机的3D建模系统,所述数据源进一步包括与所述超声波扫描设备连接的一个位置确定设备和一个旋转角度传感器。
13.如权利要求1所述的基于计算机的3D建模系统,所述数据源界面将所述多个2D横截面的数据图像转化为一个标准化的位图格式。
14.一种生成基于计算机的虚拟3D表示的方法,其包括获得多个2D横截面的数据图像及每个数据图像的定向和定位信息;为每个数据图像生成一个平面框架;将每个数据图像映射到其相应的平面框架上作为纹理;使用所述定向信息在虚拟3D空间中绕一个或多个轴旋转每个平面框架;在虚拟3D空间中使用所述定位信息平移每个平面框架。
15.一种观察依据权利要求14所述的方法生成的基于计算机的3D表示的方法,其包括在屏幕上将所述多个已旋转和已平移的框架显示为一个虚拟3D表示,并使用一次或多次旋转所述虚拟3D表示来观察它,使用剪裁平面切入到所述虚拟3D表示中,调整所述虚拟3D表示的透明度,调整所述虚拟3D表示的半透明度,调整用于在所述屏幕上表现所述虚拟3D表示的像素的颜色,调整用于在所述屏幕上表现所述虚拟3D表示的像素的对比度,调整所述虚拟3D表示的亮度,调整所述虚拟3D表示的灰度系数,调整所述虚拟3D表示的大小,将视点动态平移到所述虚拟3D表示中,并相对于所述虚拟3D表示动态移动所述视点。
16.如权利要求14所述方法,其中每个数据图像包括多个像素,其进一步包括通过操作单个像素的α值来调整半透明度,包括为像素获取一个特定色值,选择一个阈值,通过从一个最大色值减去所述特定色值来计算一个运算值,将所述运算值与所述阈值比较,并使所述α值等于所述最大色值,或者如果所述运算值小于所述阈值,则使所述α值等于所述运算值除以一个选择的值。
17.如权利要求16所述的方法,包括通过操作单个像素的所述色值调整对比度,包括用数学方法修改像素的至少一个颜色分量,所述像素具有一个小于所述最大色值的计算α值。
18.如权利要求14所述的方法,其中每个数据图像包括多个像素,其进一步包括通过操作单个像素的所述α值调整半透明度,包括获得所述像素的特定色值,选择一个阈值,通过从一个最大色值减去所述特定色值来计算一个运算值,将所述运算值与所述阈值比较,并使所述α值等于所述最大色值,或如果所述运算值大于所述阈值,则使所述α值等于被所述运算值除以一个选择的值。
全文摘要
一种基于计算机的3D建模系统,用于从多个具有相互空间关系的2D横截面数据图像构造虚拟3D表示。可从数据源模块(22)提取多个数据图像及相关的定向和定位信息。框架生成模块为每个图像片构造矩形框架。纹理映射模块(26)将图像片映射到关联的框架上作为纹理。旋转变换模块(28)基于与每个数据图像相关的定向信息,适当地绕一个或多个轴来旋转每个框架以实现3D空间中的正确定向。平移变换模块(28)基于与每个数据图像相关的定位信息来平移每个框架,以实现3D空间中的正确定位。
文档编号G06T15/08GK1708771SQ200380102429
公开日2005年12月14日 申请日期2003年10月8日 优先权日2002年10月11日
发明者M·W·史密斯, K·M·凯利, R·罗伊斯 申请人:索罗新公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1