基于分块的蒙特卡洛体绘制方法

文档序号:6561195阅读:154来源:国知局
专利名称:基于分块的蒙特卡洛体绘制方法
技术领域
本发明涉及一种计算机应用技术领域中的三维数据可视化的方法,具体是一种基于分块的蒙特卡洛体绘制方法。
背景技术
体绘制是一种直接的数据可视化技术,它不需要表面的提取过程,直接将所有的数据通过重采样和复合技术生成最后的绘制图像,由于在结果图像中包含了对象的所有信息,使其在数据可视化领域占有越来越重要的地位。它已经被广泛地应用到医学、化学、天文学、气象学和其它领域。然而,由于体绘制需要大量的计算、硬盘存储和对内存的随机访问,因此,面对大规模的数据,特别是数据的大小超过256×256×256时,体绘制算法变得非常慢。如何提供快速有效的算法来实现对大规模数据的交互控制是体绘制方法的研究重点。
经过20多年的发展,已经有光线投射、抛雪球和硬件加速等体绘制方法被提出。按照求解时是否需要对原始的体数据进行预处理,可将其分为直接的体绘制算法和变换域体绘制算法两大类。直接体绘制算法直接对原始数据进行处理,能够取得很好的精度,但随着三维成像技术的迅猛发展,所产生的体数据规模越来越大,直接面向原始数据的体绘制算法在时间和计算复杂度上面临了很大的挑战,于是现在更多的人研究和关注变换域算法——将数据变换到另外的域,例如压缩域、频域或小波域,然后投射直接在这些变换后的域中进行。
经对现有技术的文献检索发现,Csebfalvi等在《Visualization 2003》(2003年可视化会议论文集)(2003年论文集)上发表的“Monte Carlo VolumeRendering”(蒙特卡洛体绘制),该文中提出使用蒙特卡洛积分技术进行三维数据的可视化,具体方法为首先将原始的体数据进行随机采样得到采样点,然后投射这些采样点生成绘制图像。其不足在于为了获得和存储采样点,还是需要大量的内存消耗。在采样过程中,为了获得所需的n采样,首先需要产生同样数量的随机数,每个随机数使用一个浮点型变量存储,对n个随机数需要4n个字节;在对随机数排序时,还需记录这些随机数排序前的位置,使用4个字节的整型变量存储这个位置,因此需要另外的4n个字节。加上保存采样所需的12n个字节(每个采样是三维空间中的一点,每个维数使用4个字节,因此一个点需12字节),预处理时共需20n个字节的内存。以通常产生16M(Megabytes)的采样为例,需要320M内存。因此,可以看出,经典蒙特卡洛体绘制的预处理过程内存消耗非常大。而且保存的采样需要在投射过程中一直存在,也使得投射时内存消耗也很大,特别是在网络可视化应用中,如此大的数据量的传输也造成了该算法在网络数据可视化中的一个瓶颈。另外,为了获得更好的绘制图像质量,往往需要更多的采样,也会降低投射的速度。

发明内容
本发明的目的就是针对经典的蒙特卡洛体绘制算法内存消耗较大,预处理时间较长,提出的一种改进方法——基于分块的蒙特卡洛体绘制方法。
能够提高变化域体绘制技术的时效性和稳健性本发明是通过以下技术方案实现的,本发明包括如下步骤(1)体数据的分块分块操作就是将原始的大规模数据分成许多小的体数据。选定块的大小后,通过使用0填补空白位置,将原始数据的大小扩大为块大小的整数倍,这样可以将原始的数据分成互补重叠的许多小块。分块后就可以按照下列步骤依次处理各个块。
(2)采样点的生成和编码对第k个块,首先确定在本块中采样点的数目Mk。通过设定一个阈值δ,并计算该块内所有体素数据的和Ck,则有Mk=δ·Ck。
在确定所需生成的采样点数目后,采样点的生成分两步完成。
●根据块的概率密度函数来确定采样点的粗略位置。通过生成Mk个随机数,然后映射到所需的分布来定位Mk个体元的位置,这个位置既是采样点的粗略位置。
●根据体数据要采用的插值方法,通过增加一个偏移量来确定采样点的精确位置。偏移量的计算是通过将随机数映射到归一化的的插值核函数来得到。
在对每个采样点的编码进行时,首先将采样点的位置减去块的位置,得到采样点相对于块的位移。然后将这个位移归一化并量化为0-255大小的范围。这时,仅需使用3个字节即可保存一个采样点的位置信息,而已有的蒙特卡洛方法需要12个字节。而且,由于每个子块单独处理,所需的随机数和相应的位置信息也大大减少,极大地减少了预处理时需要处理的数据量,显著降低内存的消耗。
(3)采样点的投射在投射过程中,首先根据给定的投射方向求得投射变换矩阵。然后建立三个平行于坐标轴的大小为256的位移查找表。即分别求取在三个轴向上,位移在0-255时投射到图像坐标后的位移向量。在查找表初始化后,投射过程是依次按块来进行的。
对每个块,首先根据投射变换矩阵将块的位置投射到图像平面,得到块在图像坐标系中的位置。然后,对块中的每个采样点,根据编码后的偏移量,在位移查找表中查找对应的位移在图像坐标系中的偏移量。最后查找所得的偏移量加上块在图像坐标系中的位置就可得到采样点的投射位置。
当得到采样点的投射位置后,将其量化到对应的图像像素点,同时将该像素的值增加Ck/Mk。当所有的块中的采样点投射完成后,将图像归一化并量化到所需的灰阶,一般为255。
(4)量化首先对投射后图像的所有像素值求平均,并令平均值对应的量化后的值为最终量化后图像的平均亮度。假定所求的平均像素值为ee=Σi,jIi,j,]]>其对应的量化后的亮度为b,并设量化等级为l(通常,采用256个灰度级),那么量化后的像素值为 最终得到体绘制结果图像。
经典蒙特卡洛体绘制算法中使用的量化方法不能适应数据的变化,对不同的数据,量化后图像的亮度可能不同。而本发明使用的量化方法,能保证不同数据量化后具有一致的亮度,使得不同数据、不同方法的比较变得容易,算法也具有更好的鲁棒性。
本发明实现的方法,通过在预处理步骤中提出的分块采样、采样分块量化编码技术、投射过程引入查找表、改进量化方案等,提高了经典蒙特卡洛体绘制采样方法收敛性,有效地降低了内存的消耗,并一定程度上提高了投射速度,增强了量化的鲁棒性,得到了更好的体绘制图像效果。


图1为本发明实施例XMasTree体数据在采样数1M的体绘制图像。
图2为本发明实施例XMasTree体数据在采样数4M的体绘制图像。
图3为本发明实施例XMasTree体数据在采样数16M的体绘制图像。
具体实施例方式
下面结合附图对本发明的实施例作详细说明本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1、2、3所示,本实施例采用的图像数据是XMasTree体数据(512×512×499)。整个系统实现过程如下1.体数据的分块本实施例选取大小为8×8×8的块。通过增加一个数值全为0的切片数据,将原始数据扩充为512×512×1000大小。然后将其分为大小为8×8×8的互不重叠的64×64×125=51200个块。
2.采样点的生成和编码根据所希望达到的精度,选取阈值δ=0.004。然后依次对每个块进行处理。
首先求取块中所有体元数值的和,根据Mk=δ·Ck确定每个块的采样数。然后生成Mk个随机数。接着通过映射到块的分布得到Mk个采样点的粗略位置。最后增加三次线性插值的随机偏移量,得到采样点的位置。接着对此采样点进行编码,得到编码后的位移并保存。
3.采样点的投射本实施例采用平行投影,透射后图像大小为256×256。首先初始化位移查找表,然后依次投射每个块中的每个采样点。对每个采样点,将投射后所对应的图像像素值增加Ck/Mk。最后将图像量化到具有灰度水平为255的灰度图像。
最终根据上述步骤得到的图像如图1-3所示。预处理时间,包括分块,采样点的生成和编码,是32.4秒。投射速度为每秒1.03帧。内存消耗为52.9兆字节。而采用已有的蒙特卡洛方法,预处理时间为44.3秒。投射速度为每秒0.71帧。内存消耗为192兆字节。
4.量化首先对投射后图像的所有像素值求平均,然后取亮度为8和量化等级为255个灰阶,按照发明内容(4)中的公式进行计算得到量化结果。
如图1-3,对XMasTree体数据(512×512×499)在不同采样数1兆,4兆和16兆时的体绘制图像如图1-3所示。可以看出,随着采样数的增加绘制图像质量逐步提高。而且在16兆采样点时获得了很好的可视化效果,能够满足对数据分析的要求。
权利要求
1.一种基于分块的蒙特卡洛体绘制方法,其特征在于包括如下步骤(1)体数据的分块将原始的大规模数据分成许多小的体数据,选定块的大小后,通过使用0填补空白位置,将原始数据的大小扩大为块大小的整数倍,这样将原始的数据分成互补重叠的许多小块,分块后按照下列步骤依次处理各个块;(2)采样点的生成和编码对第k个块,首先确定在本块中采样点的数目Mk,通过设定一个阈值δ,并计算该块内所有体素数据的和Ck,则有Mk=δ·Ck;在确定所需生成的采样点数目后,采样点的生成分两步完成第一步,根据块的概率密度函数来确定采样点的粗略位置,通过生成Mk个随机数,然后映射到所需的分布来定位Mk个体元的位置,这个位置是采样点的粗略位置;第二步,根据体数据要采用的插值方法,通过增加一个偏移量来确定采样点的精确位置,偏移量的计算是通过将随机数映射到归一化的的插值核函数来得到;在对每个采样点进行编码时,首先将采样点的位置减去块的位置,得到采样点相对于块的位移,然后将这个位移归一化并量化为0-255大小的范围,这时,仅需使用3个字节即可保存一个采样点的位置信息;(3)采样点的投射在投射过程中,首先根据给定的投射方向求得投射变换矩阵,然后建立三个平行于坐标轴的大小为256的位移查找表,即分别求取在三个轴向上,位移在0-255时投射到图像坐标后的位移向量,在查找表初始化后,投射过程是依次按块来进行的;对每个块,首先根据投射变换矩阵将块的位置投射到图像平面,得到块在图像坐标系中的位置,然后,对块中的每个采样点,根据编码后的偏移量,在位移查找表中查找对应的位移在图像坐标系中的偏移量,最后查找所得的偏移量加上块在图像坐标系中的位置就得到采样点的投射位置;当得到采样点的投射位置后,将其量化到对应的图像像素点,同时将该像素的值增加Ck/Mk,当所有的块中的采样点投射完成后,将图像归一化并量化到所需的灰阶;(4)量化首先对投射后图像的所有像素值求平均,并令平均值对应的量化后的值为最终量化后图像的平均亮度。
2.根据权利要求1所述的基于分块的蒙特卡洛体绘制方法,其特征是,步骤(1)中,所述的分块,其大小为8×8×8个像素。
3.根据权利要求1所述的基于分块的蒙特卡洛体绘制方法,其特征是,步骤(3)中,当所有的块中的采样点投射完成后,将图像归一化并量化到的灰阶为255。
4.根据权利要求1所述的基于分块的蒙特卡洛体绘制方法,其特征是,步骤(4)中,具体实现为假定所求的平均像素值为ee=Σi,jIi,j,]]>其对应的量化后的亮度为b,并设量化等级为l,那么量化后的像素值为 最终得到体绘制结果图像。
5.根据权利要求4所述的基于分块的蒙特卡洛体绘制方法,其特征是,所述的量化等级为l,采用256个灰度级。
全文摘要
一种计算机应用技术领域的基于分块的蒙特卡洛体绘制方法,步骤为(1)体数据的分块;(2)采样点的生成和编码采样点的生成包括采样点的粗略位置、确定采样点的精确位置;编码时,首先将采样点的位置减去块的位置,得到采样点相对于块的位移,然后将这个位移归一化并量化为0-255大小的范围;(3)采样点的投射先得到块在图像坐标系中的位置,然后查找对应的位移在图像坐标系中的偏移量,最后查找所得的偏移量加上块在图像坐标系中的位置得到采样点的投射位置;(4)量化。本发明提高了经典蒙特卡洛体绘制采样方法收敛性,有效地降低了内存的消耗,并一定程度上提高了投射速度,增强了量化的鲁棒性,得到了更好的体绘制图像效果。
文档编号G06T15/00GK1967595SQ200610117570
公开日2007年5月23日 申请日期2006年10月26日 优先权日2006年10月26日
发明者杨杰, 李晓亮, 姚莉秀 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1