用于经加速的体绘制的可用存储的自适应使用的制作方法

文档序号:16269169发布日期:2018-12-14 22:08阅读:187来源:国知局
用于经加速的体绘制的可用存储的自适应使用的制作方法

本实施例涉及用于经加速的体绘制的可用存储的自适应使用。

背景技术

体数据和体数据的三维可视化在许多领域(例如医学、工业质量保证、工程和地质学)中发挥越来越重要的作用。在标量体数据集中,不同的灰度值对应于所表示的对象的不同结构(例如,人体内的不同类型的组织)。标量体数据集的离散元素是体素。

直接体绘制(dvr)通过沿着观察射线对光与标量体数据集内表示的假想气体材料的相互作用进行积分,来显示所表示对象的不同结构的彩色图像。通过将不同的数据值(例如,灰度值)映射到不同的不透明度和颜色,光-材料的相互作用被建模。该映射对标量体数据集内表示的不同对象进行分类。

dvr允许对不同的经分类的对象进行快速和高效的探索。在绘制期间,传输函数或查找表(lut)在数据范围中针对每个值限定颜色和不透明度对。通过将某一区间的数据值设置为完全透明,可以使不相关的结构(例如周围的空气)不可见。

更先进的dvr技术允许针对标量体数据集内表示的不同结构来限定单独的lut。在绘制期间可以使用标签卷来提供用于选择正确lut的整数值索引。

dvr是计算上非常昂贵的技术。为了提供交互式绘制速度,可以使用高效的加速技术。归因于用于dvr的高内存消耗,所以在加速和内存成本之间存在折中。

一种加速技术是跳过标量体数据集的空白(例如不可见的)空间。标量体数据集被预处理,以找到空白区域,并将该信息存储在专用数据结构中,以便在绘制期间进行快速查找。可以使用基于例如距离场的数据结构和算法。针对每个体素,其到最近的非空白空间的距离被编码。所需要的空白空间信息被计算,并且被存储在为快速查找而优化的静态数据结构中。静态数据结构可能消耗大量的内存,这对于体绘制应用而言可能是缺乏的(例如,归因于使用图形处理单元(gpu))。



技术实现要素:

为了减少用于体绘制的内存占用空间,距离场信息被自适应地压缩,并且与具有未使用的内存的现有数据结构合并,以形成合并的数据集。在绘制期间,合并的数据集被采样,并且采样值用于针对对应体素而标识查找表,或者被解压缩并用于跳过空白空间。

在第一方面,提供了一种用于自适应地存储距离信息的方法,该距离信息用于对第一体数据集进行体绘制,第一体数据集包括具有相应的值的体素。该方法包括:通过处理器生成第二体数据集。第二体数据集标识第一体数据集的体素的第一子集以及第一体数据集的体素的第二子集,第一子集表示空白空间,第二子集表示非空白空间。处理器基于第二体数据集来生成距离场。距离场针对第一子集的体素中的每个体素来标识到第二子集的体素中的最近体素的距离。处理器标识第三体数据集。第三体数据集针对体素中的每个体素来标识相应的体素属于第一体数据集的哪个部分或哪些部分。处理器选择至少一个压缩方法。处理器基于该至少一个压缩方法来压缩距离场,并且将经压缩的距离场与第三体数据集合并。

在第二方面,提供了一种用于从第一体数据集生成二维(2d)图像的方法。第一体数据集包括表示相应的第一值的体素。该方法包括:通过处理器标识第二体数据集,第二体数据集包括与第一体数据集的体素分别对应的第二值。第二值的第一子集中的每个第二值表示到最近体素的相应距离。第二值的第二子集中的每个第二值标识要用于相应体素的传递函数。对于第二体数据集的第二值的至少一部分中的每个第二值,处理器将相应的第二值与预定值进行比较,并且基于相应的第二值与预定值的比较的结果,针对相应体素确定到最近体素的距离或标识要用于相应体素的传递函数。基于第一体数据集、以及一个或多个所确定的距离、一个或多个所标识的传递函数、或者一个或多个所确定的距离和一个或多个所标识的传递函数,处理器生成2d图像。

在第三方面,提供了一种存储指令的非瞬态计算机可读存储介质,该指令可由一个或多个处理器执行,以自适应地存储距离信息,该距离信息用于对第一体数据集进行体绘制。第一体数据集包括具有相应的值的体素。该指令包括:生成第二体数据集。第二体数据集标识第一体数据集的体素的第一子集以及第一体数据集的体素的第二子集,第一子集表示空白空间,第二子集表示非空白空间。该指令还包括:基于第二体数据集来生成距离场。距离场针对第一子集的体素中的每个体素来标识到第二子集的体素中的最近体素的距离。该指令包括:标识第三体数据集。第三体数据集针对体素中的每个体素来标识相应的体素属于第一体数据集的哪个部分或哪些部分。该指令还包括:选择至少一个压缩方法,基于该至少一个压缩方法来压缩距离场,并且将经压缩的距离场与第三体数据集合并。

在第四方面,提供了一种存储指令的非瞬态计算机可读存储介质,指令可由一个或多个处理器执行,以从第一体数据集生成二维(2d)图像,第一体数据集包括表示相应的第一值的体素。该指令包括:标识第二体数据集。第二体数据集包括与第一体数据集的多个体素分别对应的第二值。第二值的第一子集中的每个第二值表示到最近体素的相应距离。第二值的第二子集中的每个第二值标识要用于相应体素的传递函数。该指令还包括:对于第二体数据集的第二值的至少一部分中的每个第二值:将相应的第二值与预定值进行比较,并且基于相应的第二值与预定值的比较的结果,针对相应体素确定到最近体素的距离或标识要用于相应体素的传递函数。该指令包括:基于第一体数据集、以及一个或多个所确定的距离、一个或多个所标识的传递函数、或者一个或多个所确定的距离和一个或多个所标识的传递函数来生成2d图像。

附图说明

图1示出了成像系统的一个实施例;

图2示出了磁共振成像系统的一个实施例;

图3示出了用于自适应地存储距离信息的方法的一个实施例的流程图,该距离信息用于对体数据集进行体绘制;

图4示出了用于从体数据集生成二维(2d)图像的方法的一个实施例的流程图;

图5图示了非膨胀体积上距离场的计算;

图6图示了膨胀体积上距离场的计算;以及

图7示出了用于从体数据集生成2d图像的方法的另一实施例的流程图。

具体实施方式

本实施例的系统和方法基于距离场信息,该距离场信息用于体绘制中的空白空间跳过算法。取决于现有数据结构内可用的、未使用的空间,距离场信息被自适应地压缩到用于体绘制的现有数据结构。

现有技术的体绘制方法静态地创建距离场,分配如所需要的那么多的附加空间。这样的现有技术方法依赖于绘制期间生成的距离场的精度。

通过自适应地压缩距离场信息,如现有数据结构内可用的那么多的空间可以被动态地使用。绘制时间可以减少动态因子倍,而不消耗额外的内存(例如,在可以牺牲绘制速度以将内存需求保持在恒定比率处的环境内)。与现有技术不同,体绘制不依赖于所计算的距离信息的精度;而是,如可用的那么多的距离场信息被使用,并且绘制速度相应地降低。

此外,不同的压缩方法可以彼此结合使用。取决于正在使用的实际数据或先前绘制的性能分析,可以在运行时自适应地选择最佳压缩方法。

图1示出了成像系统100的一个实施例。成像系统100可以在下文描述的系统和方法中使用。成像系统100可以包括一个或多个成像设备102(例如成像设备)和一个或多个图像处理系统104(例如,图像处理系统)。表示二维(2d)或三维(3d)(例如体积)区域的数据集可以使用成像设备102和图像处理系统104来采集。2d数据集或3d数据集可以在规划和/或执行医学程序的同时或在更早的时间采集。额外的、不同的或更少的部件可以被提供。

在一个实施例中,成像系统100例如是mri系统。成像系统100可以用于创建可以在医学处理程序的规划中使用的患者模型。例如,图像处理系统104是用于处理规划的工作站。在其他实施例中,成像系统100可以包括例如医学工作站、计算机断层扫描(ct)系统、超声系统、正电子发射断层扫描(pet)系统、血管造影系统、荧光透视、x射线系统、任何其他现在已知或以后开发的成像系统,或其任何组合。工作站104接收由成像设备102生成的表示患者图像的数据。成像系统100可以包括更多或更少的部件。

图2示出了mri系统200的一个实施例。mri系统200包括mri设备102和图像处理系统104。mri设备102包括低温磁铁(cryomagnet)202、梯度线圈204、整体线圈206(例如,体线圈)、局部线圈208和病床210。图像处理系统104可以包括mr接收器212、处理器214、存储器216和显示器218。额外的、不同的或更少的部件可以被提供。例如,附加局部线圈或附加表面线圈可以被提供用于mr成像。另外,用户输入设备(例如,键盘和/或鼠标)可以被提供用于用户控制。作为另一示例,局部线圈208或整体线圈206不被提供。

mri系统200的其他部分设置在同一壳体内、同一室内(例如,射频舱内)、同一设施内或远程地被连接。mri系统200的其他部分可以包括冷却系统、脉冲生成系统、附加图像处理系统和用户界面系统。任何现在已知或以后开发的mr成像系统都可以被使用。mri系统200的不同部件的位置在rf舱内和/或外部,诸如成像处理、断层扫描、功率生成和用户接口部件在rf舱外部。电力电缆、冷却线和通信电缆通过滤波板将rf舱内的脉冲生成、磁控制器和检测系统与rf舱外部的部件连接起来。

在一个实施例中,处理器214和存储器216是mr接收器212的一部分。备选地,处理器214和存储器216是归档和/或图像处理系统的一部分,诸如与医学记录数据库工作站或服务器相关联。在其他实施例中,处理器214和存储器216是个人计算机(如台式或膝上型计算机)、工作站、服务器、网络或其组合。为了实现该方法可以提供处理器214和存储器216而无需其他部件。

低温磁铁202、梯度线圈204和体线圈206位于rf机舱内,诸如由法拉第笼隔离的室。管状或侧向开口的检查对象孔包围视场。更开放的布置可以被提供。病床210(例如,患者轮床或患者台)支撑检查对象,例如具有局部线圈布置的患者,局部线圈布置包括局部线圈208(例如,局部线圈)。病床210可以被移动到检查对象孔中,以便生成患者的图像。在图2所示的实施例中,局部线圈208定位在病床210中(例如,在患者下方)。在其它实施例中,例如,局部线圈208可以被定位在病床210与患者之间、在患者一侧上和/或在患者上方。接收到的信号可以由局部线圈208经由例如同轴电缆或无线电链路(例如,经由天线)向mr接收器212传送,以进行成像。

为了检查患者,不同的磁场在时间和空间上彼此调和以施加到患者。低温磁铁202生成例如0.2特斯拉至3特斯拉或更高范围内的强静态主磁场b0。主磁场b0在视场中近似均匀。

患者的原子核的核自旋经由磁射频激励脉冲来激励,磁射频激励脉冲经由射频天线传送,射频天线在图2中以简化形式示出为整体线圈206,和/或可能是局部线圈布置(例如,局部线圈208或多个局部线圈)。射频激励脉冲例如通过由脉冲序列控制单元控制的脉冲生成单元来生成。在使用射频放大器进行放大之后,射频激励脉冲被路由到体线圈206和/或局部线圈208。体线圈206中的每个体线圈是单个部件或包括多个线圈。信号处于给定的频段。例如,用于3特斯拉系统的mr频率约为123mhz+/-500khz。不同的中心频率和/或带宽可以被使用。

梯度线圈204在测量过程中辐射磁梯度场,以便产生选择性层激励,并且用于测量信号的空间编码。梯度线圈204由梯度控制单元控制,梯度控制单元像脉冲生成单元一样被连接到脉冲序列控制单元。梯度控制单元、脉冲生成单元和/或脉冲序列控制单元至少部分地由处理器214或另一控制器表示。

作为被激励的核自旋的结果而发射的信号被局部线圈208接收。在一些mr断层扫描过程中,可以使用局部线圈布置(例如,环路、局部线圈)形成具有高信噪比(snr)的图像。局部线圈布置(例如天线系统)紧邻检查对象被设置在患者上(前面)或患者下面(后面)或患者中。接收到的信号由相关联的射频前置放大器放大,以模拟或数字化形式传送,并由mr接收器212进一步处理和数字化。数字化数据作为k-空间矩阵中的复数值存储在存储器216中。检查对象的关联mr图像可以使用一维或多维傅里叶变换(ft)、从填充有值的k-空间矩阵来重建。检查对象的经重建的mr图像可以被存储在存储器216中和/或显示在显示器218上。

局部线圈208是导电的。例如,局部线圈208由铜制成。局部线圈208被用作接收天线。任何尺寸的线圈都可以被使用。非对称的尺寸可以被提供。局部线圈208可以是表面线圈或螺线管线圈。其他的局部线圈几何形状可以被提供。

局部线圈208与mr接收器212连接。连接是有线的(例如,使用同轴电缆)或无线的。该连接用于将数据从局部线圈208向mr接收器212传送,并由mr接收器212接收。该数据是k空间数据。响应于mr脉冲,局部线圈208接收信号并将该k空间数据向mr接收器212传送。可以使用任何脉冲序列,例如沿三个空间轴采集投影的简单脉冲序列。任何空间分辨率可以被提供(例如,3mm的空间分辨率)。

mr接收器212包括用于重建k空间数据的处理器214或另一处理器(例如,数字信号处理器、现场可编程门阵列或用于应用傅立叶逆变换的专用电路)。mr接收器212通过硬件或软件被配置为从k空间数据计算x、y和z投影数据。

在mr测量的过程中,被激励的核在局部线圈208中感应电压。所感应的电压由低噪声前置放大器(例如,lna、前置放大器)放大,并被前送到mr接收器212。用于从k空间数据重建空间数据的其它变换可以被使用。

处理器214是通用处理器、中央处理单元、控制处理器、图形处理器、数字信号处理器、三维绘制处理器、图像处理器、专用集成电路、现场可编程门阵列、数字电路、模拟电路、其组合或其他现在已知或以后开发的用于图像处理的设备。处理器是单个设备或串行、并行或分离地运行的多个设备。处理器214可以是计算机的主处理器,诸如膝上型计算机或台式计算机,或者可以是用于处理较大系统中的一些任务的处理器,诸如作为mr接收器212或成像系统104的一部分。处理器214由指令、设计、硬件和/或软件来配置,以执行本文讨论的动作。

存储器216是计算机可读存储介质。计算机可读存储介质可以包括各种类型的易失性和非易失性存储介质,包括但不限于:随机存取存储器、只读存储器、可编程只读存储器、电可编程只读存储器、电可擦除只读存储器、闪存、磁带或磁盘、光学介质等。存储器216可以是单个设备或设备的组合。存储器216可以与处理器214相邻、是处理器214的一部分、与处理器214联网和/或远离处理器214。

显示器218是监视器、crt、lcd、等离子屏幕、平板、投影仪或其他现在已知的或以后开发的显示设备。显示器208可操作以生成用于2d视图或经绘制的三维表示的图像。例如,通过绘制表示三维体积的2d图像被显示。

图3示出了用于自适应地存储距离信息的方法300的一个实施例的流程图,该距离信息用于对第一体数据集进行体绘制,并且图4示出了用于从第一体数据集生成2d图像的方法400的一个实施例的流程图。图3的方法300和图4的方法400可以使用图1和图2中所示的成像系统100或另一成像系统来执行。方法300、400中的每个方法以示出的相应次序来实现,但也可以使用其他次序。额外的、不同的或更少的动作可以被提供。类似的方法可以用于自适应地存储用于体绘制的信息和/或从体数据集生成图像。

在一个实施例中,成像设备(例如,成像设备102)生成第一体数据集,并且第一体数据集存储在存储器(例如,存储器216)中。第一体数据集表示对象(例如,患者)的至少一部分,并且包括具有相应第一值的体素。

体数据集可以是离散3d矩形网格上的体素集,具有从零开始的体素索引x、y和z以及vw、vh和vd(例如,宽度、高度、深度)的分辨率(例如,体素的数目)。δx、δy和δz用于描述每个维度中体素的空间范围。这允许如在医学应用中常见的各向异性体素。例如,对于无符号的12位数据集,体素值在整数范围rv=[imin,imax)内(例如范围[0,4096))。

在动作302中,处理器(例如,处理器214)生成第二体数据集。第二体数据集标识第一体数据集的体素的第一子集和第一体数据集的体素的第二子集,第一子集表示空白空间,第二子集表示非空白空间。

在一个实施例中,第二体数据集是二进制体数据集。生成第二体数据集包括基于与体素分别对应的传递函数或查找表来生成第二体数据集。

传递函数或lut将体数据集v的至少一部分的物理数据范围rv映射到颜色和不透明度的光学性质。lut的输入是体素值ω。对于不透明度α,lutα:rv→;lutα(ω)=α|α∈[0,1],其中α=0表示完全透明,α=1表示完全不透明。

二进制体数据集(例如,第二体数据集;分割掩码;二进制体积b)对布尔值编码,布尔值限定体素是否是分割的一部分(例如b(x,y,z)=真)或在分割之外(例如,b(x,y,z)=假)。换句话说,二进制体数据集对空白和非空白空间进行编码。“真”体素可以是前景体素,“假”体素可以是背景体素。两个不相交的子集被限定为:

考虑第一体数据集的lutα和所有分割掩码。因此,可以描述非空白空间体积e如下:

换句话说,如果任意在ω中分类为可见结构,则该体素是非空白的。如果所有的在ω中都是完全透明的,则该体素相应地是空白空间。

对于每个分割掩码,存在对应的lutα。因此,对于第一体数据集和(n-1)个经分割的对象,提供了被索引为的lutα

在动作304中,处理器基于第二体数据集生成距离场。距离场针对体素的第一子集的每个体素标识到体素的第二子集的最近的体素的距离。换句话说,距离场标识从任何背景体素到最近的前景体素的相应距离。对于第二体数据集(例如,二进制体数据集),例如,距离场提供从任何体素(x,y,z)∈b0到体素(a,b,c)∈b1的最小距离,(a,b,c)∈b1具有在距离度量distm(例如,欧几里得或城市街区)下的“真”值。例如,欧几里德距离度量diste和获得的距离δe由l2范数针对两个体素p=(x,y,z)和q=(a,b,c)来给出:

作为另一示例,城市街区距离distcb和获得的距离δcb等于l1范数:

δcb=distcb(p,q)=|px-qx|+|py-qy|+|pz-qz|

在一个实施例中,可以使用对b(其中p∈b0)的离散距离变换来计算距离场

所使用的距离度量可以独立于本实施例的方法300、400。

距离场在与用于绘制的算法所使用的坐标系相同的坐标系中生成(例如,以相同单位生成距离)。在一个实施例中,因为在图形硬件上实现许多绘制算法(例如,直接体绘制(dvr)),所以在归一化纹理空间中提供各向异性体素范围(δx,δy,δz)。

在一个实施例中,处理器首先通过对第二体数据集应用膨胀操作来生成另一体数据集,从而在绘制期间防止插值伪影。基于由应用到第二体数据集的膨胀操作产生的该体数据集来生成在动作304中生成的距离场。用于膨胀的结构化元件的大小取决于在绘制期间使用的插值方法(例如,三线性或三元三次插值)。膨胀的大小取决于(例如,匹配)插值方法。

膨胀在从空白空间到可见结构的过渡中提供正确的采样。如图5所示,示出了计算非膨胀体积e上的距离场的问题。非膨胀体积e的前景体素b1被阴影化,并且背景b0是白色的。小方块分别表示体素晶格上的体素中心,虚线分别表示体素的边界。突出体素的欧几里得距离是三。沿光线500跳过三个单位产生已经在感兴趣区域502(例如,结构)内的位置。结构502的边界504因此可能被错误地采样,因为结构502内的前一采样位置506可能被跳过。如图6所示,膨胀版本上的距离的计算可以克服这个问题。跳过两个单位而不是如图5所示的三个单位,可以将采样正确地定位在结构502的前面(例如,由于膨胀的前景600)。

在动作306中,处理器标识第三体数据集。第三体数据集针对体素中的每个体素来标识相应体素属于的第一体积的哪个或哪些部分。例如,第三体数据集是标签卷l。标签卷l提供n个整数索引,用于选择体素所属于的分割掩码的在一个实施例中,标签被编码为8位整数,从而rl=[0,28)=[0,256)。但是,其他位数可以被提供。

标签卷l可以不利用每个体素可用的所有位。例如,利用以8位整数编码的标签,256个标签可以用于编码不同的分割掩码。许多dvr场景指定小数目的不同分割。例如,dvr场景可以指定五个或更少的不同分割。相应地,归因于标签卷l内可以用于编码的大量标签,标签卷l可以用于存储其他数据(例如,距离场)。其他体数据集(其中每个体素可用的所有位未被利用)可以用于存储附加数据,诸如距离场。

在动作308中,处理器选择至少一个压缩方法。在一个实施例中,处理器基于以下来选择至少一个压缩方法:距离场、第三体数据集内的可用存储或可用值范围、第一体数据集内表示的结构、至少一个压缩方法的计算复杂度、存储第三体数据集的存储器容量、处理器、或存储器和处理器、或其任何组合。例如,处理器基于以下来选择至少一个压缩方法:m的大小(例如,诸如第三容量数据集的目的地容量内的可用整数范围的大小);主机系统(例如,处理器)的总体绘制和容量的计算复杂度,其可能要求轻量级压缩功能或允许更复杂的压缩功能;距离场中的最大距离距离场中距离的分布;要被绘制的体数据集(例如,第一体数据集)内的可见结构的拓扑或形状,因为形状的不同特性可以受益于每体素的压缩编码;或其任何组合。在一个实施例中,处理器即时选择至少一个压缩方法。例如,利用基于monte-carlo的绘制器,其中数百次迭代被绘制,不同压缩方法或函数的性能可以分别被比较,并且可以选择最快的压缩方法。可以使用其他标准来选择至少一个压缩方法。

给定在dvr场景中存在的n个lutα,其中的每一个由第三体数据集(例如,标签卷l)中的索引来表示,剩余的m=|rl|-n个整数值用于编码空白空间距离场由于距离是实数,因此选择例如提供以下映射的压缩方案

只要标签的数目以及由此的m值发生变化,压缩就可以被调整。压缩函数的第二参数不同。在一个实施例中,压缩函数因此可以即时改变。

至少一个压缩方法可以是任何数目的压缩方法,包括例如基于以下的压缩:夹紧、归一化、低精度浮点编码、非线性缩放、方向依赖压缩、每体素压缩策略选择或其任何组合。对于基于夹紧的压缩,距离δm被夹紧到剩余的整数值的数目m,从而对于基于归一化的压缩,距离δm由归一化因子缩放,从而最大距离等于m:

对于基于低精度浮点编码的压缩,标签卷中的自由位(例如,)被使用,并且距离被转换为具有较少位的浮点格式。浮点格式可以省略符号位,因为所有的距离都是正的,并且留下更多的位用于指数和/或尾数。基数的选择、指数偏差的使用(例如,作为常数值)和次正规数的编码被支持,以允许适应距离场的给定范围。

对于基于非线性缩放的压缩,可以使用包括例如对数、指数或幂函数的非线性缩放方法。非线性缩放方法的适用性可以取决于距离场或数据集(例如,第三体数据集)的特性。在其他领域中使用的众所周知的非线性缩放方法也可以被使用,例如非线性色调映射函数。

对于方向依赖压缩,如果距离场将方向信息保留到最近的前景体素(例如,如果则将向量存储到最近的前景体素),则可以根据方向对距离进行不同的压缩。例如,重要的方向可以用比不重要的方向更高的分辨率来编码。

在一个实施例中,选择至少一个压缩方法包括:处理器基于与第一距离对应的第三体数据集的第一体素内的可用存储,针对距离场的第一距离来选择至少一个压缩方法中的第一压缩方法。处理器还基于与第二距离对应的第三体数据集的第二体素内的可用存储,针对距离场的第二距离来选择至少一个压缩方法中的第二压缩方法。

例如,对于基于每体素选择策略的压缩使用前k个整数来编码用于当前体素的压缩函数。这给予根据例如体数据集内的可见结构的特性来使用不同的压缩函数的灵活性。剩余的(m-k)个整数值可以用作实际压缩的范围。例如,是嵌套的压缩函数,它通过i∈[0,k)重定向到

在动作310中,处理器基于至少一个压缩方法来压缩距离场。在一个实施例中,在动作304中生成的距离场的所有距离用相同的压缩方法来压缩。在另一实施例中,多种压缩方法(例如,在动作308中所选择的)被分别用于压缩距离场的不同距离。例如,利用第一压缩方法压缩距离场的距离的第一子集,并且利用第二压缩方法压缩距离场的距离的第二子集。在动作310中,可以使用两种以上的压缩方法来压缩距离场。

在动作312中,处理器生成合并的体数据集。例如,处理器将经压缩的距离场与第三体数据集合并。由于(n+m)≤rl,所以经压缩的距离场与第三体数据集(例如标签卷l)的合并可能是两个值的简单相加,其中经压缩的距离偏移标签的数目:示与l相同的所分配的内存。在合并的体数据集内,标签索引和经压缩的距离很容易区分,因为标签索引和经压缩的距离由阈值n分隔开。

如上所述,现有数据结构(例如,第三体数据集)中的未使用的内存被用于对经压缩的距离场进行编码(例如,用于空白空间跳过),而不增加要使用的绘制算法的内存占用空间。编码被自适应地调整,以最适合可用内存(例如,整数范围)。与使用固定大小的数据结构和附加存储器的现有技术方法不同,例如,一个或多个本实施例的方法300可以不使用用于存储距离场的附加存储器。

基于在上面参考图3描述的方法300的动作312中生成的第一体数据集和合并的体数据集,2d图像可以被生成(例如,绘制)。参考图4,在方法400的动作402中,处理器或另一处理器标识在动作312中生成的体数据集(例如,合并的体数据集)。例如,合并的体数据集可以作为存储在存储器中的多个数据集中的数据集而被存储在存储器或另一存储器中。

合并的体数据集包括分别对应于第一体数据集的体素的第二值。第二值的第一子集的每个第二值表示到最近的体素的相应距离。第二值的第二子集中的每个第二值标识要用于相应体素的传递函数。在一个实施例中,第二值的第二子集中的每个第二值标识要用于相应体素的查找表(lut)。

在动作404中,处理器标识合并的体数据集的第二值中的一个第二值,其对应于在体绘制期间沿穿过的观察射线尚未被处理的位置。在动作406中,处理器将与第一体数据集的体素对应的相应第二值与预定值进行比较。在一个实施例中,预定值基于在第二值的第二子集内表示的多个传递函数。其他预定值可以被使用。

在动作408中,处理器基于相应第二值与预定值的比较结果,针对相应体素确定到最近体素的距离或标识要用于相应体素的传递函数。

处理器是确定到最近体素的距离还是标识要使用的传递函数基于正被处理的相应体素(例如,在沿着正被处理的观察射线的位置处)。例如,基于动作406的比较确定相应的第二值是大于、等于还是小于预定值,处理器确定是确定到最近体素的距离还是标识要使用的传递函数。

在一个实施例中,当相应的第二值小于预定值时,处理器标识要被用于相应体素的传递函数;并且当相应的第二值大于或等于预定值时,针对相应体素确定到最近值的距离。在其他实施例中,比较结果可以被不同地使用。例如,当相应的第二值小于或等于预定值时,处理器可以标识要被用于相应体素的传递函数。

例如,利用最近邻插值对合并的体数据集(例如,标签-距离体积)进行采样。给定采样值s,处理器可以在射线积分步骤中的两条路径之间做出决定:

(s<m)→分类(非空白体素)

(s≥m)→空间跳过(空白空间)

对于分类情况(例如,s<m),采样值s用作选择查找表(例如)的索引。对于空间跳过情况(例如,s≥m),处理器基于采样值s确定要跳过的距离。

存储在(例如,第二值的第一子集的)合并的体数据集中的到最近体素的相应距离的每个表示是到最近体素的相应距离的经压缩的表示。基于相应的压缩方法来压缩相应距离的表示。例如,可以分别用不同的压缩方法来压缩存储在合并的体数据集内的距离的不同表示。处理器通过使用例如所采用的压缩函数的逆运算来解压缩编码距离,以确定从采样值s跳过的距离:

在一个实施例中,采样值s的一部分标识所采用的压缩函数。在另一实施例中,标识所采用的压缩函数的数据被分开存储(例如在存储器内)。

处理器使用所确定的距离,以沿观看射线跳过。在参数化形式中,这由给出,其中p是当前位置,d是归一化射线方向。新的位置p'仍然可以处于空白空间中(例如,归因于压缩函数对实际距离值的量化或夹紧)。在这种情况下,绘制循环简单地返回到动作404。

在动作410中,处理器确定是否已经处理了沿着观看射线的所有样本位置(例如,对应于第二值)。如果不是沿着观看射线的所有样本位置都被处理了,则方法400返回到动作404。如果沿着观看射线的所有样本位置已经被处理,则,当要处理另一观看射线时,方法400返回到动作404,当没有更多观看射线要被处理时,方法400移动到动作412。

在动作412中,处理器基于第一体数据集、所确定的距离和所标识的传递函数来生成2d图像。基于所确定的距离生成2d图像包括:针对与第二值的第一子集的第二值对应的体素,基于到最近体素的距离的相应解压缩表示,跳过沿观看射线的距离。任何数目的绘制算法可以被使用。例如,可以使用诸如射线投射的体绘制技术(vrt)。可以使用任何数目的射线投射算法,包括例如montecarlo路径追踪或基于分布式射线追踪的体绘制。可以使用其他绘制算法。在一个实施例中,方法400还包括通过显示器(例如,显示器218)显示在动作412中生成的2d图像。

图7示出了用于从第一体数据集生成2d图像的方法700的另一实施例的流程图。在动作702中,处理器确定射线是否在(例如,由第一体数据集限定的)体积外部。如果处理器确定光线在体积外部,则方法700结束。备选地,如果要处理另一射线,则方法700可返回到动作702。如果处理器确定射线不在体积外部,则方法700继续动作704。

在动作704中,处理器确定射线是否完全不透明。如果处理器确定射线完全不透明,则方法700结束。备选地,如果要处理另一射线,则方法700可返回到动作702。如果处理器确定射线不完全不透明,则方法700移动到动作706。

在动作706中,处理器对当前位置处的标签-距离体积进行采样,以标识采样值。标签-距离体积可以是合并的体数据集,其包括用于绘制的表示距离场的数据和标识查找表的数据。

在动作708中,处理器评估采样值。例如,处理器确定采样值是大于、等于还是小于目的地体积(例如,标签卷)内可用整数范围的大小。如果处理器确定采样值例如大于或等于可用整数范围,则方法700移动到动作710。

在动作710中,处理器对当前位置处的距离值的表示进行解压缩。距离值的表示例如是当前位置处的经压缩的距离值。处理器通过从采样值中减去可用整数范围来确定经压缩的距离值,并且使用原始用于压缩距离值的压缩函数的逆运算来解压缩经压缩的距离值。

在动作712中,处理器通过沿着射线前进多个单位来跳过空白空间。沿着射线要被跳过的单位数目由解压缩的距离值确定。针对多个采样值和/或射线执行该方法,并且因此,方法700可以返回到动作702。

如果处理器确定采样值例如小于可用整数范围,则方法700移动到动作714。在动作714中,处理器基于采样值标识要使用的查找表。在动作716中,处理器从所标识的查找表确定针对与采样值对应的体素的颜色和不透明度。在动作718中,处理器执行阴影并累积颜色和不透明度。在动作720中,处理器沿射线前进到下一采样位置,并且方法700返回到动作702。

虽然以上通过参考各种实施例描述了本发明,但应该理解,可以对所描述的实施例进行许多改变和修改。因此,意图是前述描述被认为是说明性的而不是限制性的,并且应该理解的是,实施例的所有等同物和/或组合旨在被包括在本说明书中。

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