医学物理与工程学Implement of adaptive raycasting direct volume rendering algorithmJ I N Zhao 2y ang3,W A N G J i an 2z hong(I nstitute of I ntelli gent I nf ormation and Cont rol Technolog y ,H angz hou Dianz i Universit y ,Hangz hou 310018,China )[Abstract] A new method for direct volume rendering based on adaptive mesh refinement is presented.The method can speedup the volume rending with adaptive casting and terminating rays ,by computing the samples f rom tri 2linear interpola 2tion of the neighborhood voxels ,shading the images with the simplified phone illuminated modal ,and compositing images from f ront to back order.The experiment results show that this method can improve the rendering speed and can be used in the volume visualization based on internet.[K ey w ords] Adaptive mesh ;Raycasting ;Direct volume rendering ;Visualization ;Medical images自适应光线投射直接体绘制算法及实现金朝阳3,王建中(杭州电子科技大学,智能信息与控制技术研究所,浙江杭州 310018)[摘 要] 提出一种基于自适应光线投射的直接体绘制方法。
该方法从自适应的发出光线和终止光线两个方面来加速体绘制的进行,通过三次线性插值空间邻近点计算采样点的值,利用简化的Phone 光照模型进行消隐,由前向后合成图像。
该算法提高了绘制的速度,能满足一定的临床应用实时性要求,在基于Internet 的体数据可视化中有很好的应用前景。
[关键词] 自适应网格;光线投射;直接体绘制;可视化;医学图像[中图分类号] TP391.4 [文献标识码] A [文章编号] 100323289(2005)0420634205[基金项目]本研究为浙江省自然科学基金资助项目(Y204160)。
[作者简介]金朝阳(1974-),女,浙江余姚人,硕士,讲师。
研究方向:科学计算可视化。
[通讯作者]金朝阳,杭州下沙高教园区杭州电子科技大学自动化学院,310018。
E 2mail :jzy @[收稿日期]2004211202 [修回日期]2004212217 随着医学成像设备种类的增多和空间分辨率的提高,图像数据与日俱增,为临床提供了更全面的有助于诊断的信息,数据可视化问题成为研究的热点。
医学体数据由多层CT 、MR 等二维图像数据的叠加形成,是一种基于规则网格的标量数据场。
医学体数据的三维可视化就是将体数据在计算机上直观地表现为三维效果,提供传统二维表示法无法获得的结构信息,从而进一步帮助放射治疗、矫形手术等的计算机模拟及手术规划的展开。
医学体数据三维可视化方法大致可分为两大类:面绘制、直接体绘制。
面绘制首先在三维空间数据场中构造出中间几何图元,然后再由传统的计算机图形学技术实现画面绘制。
面绘制有多种算法,各种算法的不同点在于所采用的近似表面的几何单元不同或几何单元尺度的选择不同,典型算法有:MC 方法(Marching Cubes )[1]、M T 方法(Marching Tetrahe 2dral )[2]、剖分立方体法(Dividing Cubes )[3]等。
面绘制适用于绘制表面特征分明的组织和器官,对数据分割要求高,且物体内部信息无法保留,对于精细组织和器官的三维显示,常常效果不佳。
体绘制是将三维空间的离散数据直接转换为二维图像而不必生成中间几何图元,又称为直接体绘制,其实质为重新采样与图像合成。
典型算法有光线投射法[4,5]、足迹表法(Foot 2print Met hod )[6]、错切形变法(Shear 2Warp )[7,8]等。
直接体绘制算法认为体数据场中每个体素都具有一定的属性(透明度和光亮度),通过计算所有体素对光线的作用即可得到二维投影图像,有利于保留三维医学图像中的细节信息,适合于形状特征模糊不清的组织和器官,但存在计算量大,图像生成速度慢,实时性难以得到保证等缺点。
近年来,随着计算机运算速度的提高和软硬件技术的发展,研究者从多个方面提出了体绘制的加速方法,如基于硬件加速[9]、并行绘制[10]、多分辨率[11]等,从而使体绘制的速度接近实时。
随着计算机的飞速发展,直接体绘制可在PC 机上接近实时显示,为了进一步提高直接体绘制的速度,本文采用一种新的像空间序的自适应光线投射算法[12],该方法可以从两个方面来加快绘制速度,一方面利用图像相邻像素间的相关性自适应的发出光线,另一方面当光线上累积不透明度达到1时自适应的终止光线投射。
实验表明该方法提高了直接体绘制的速度,适用于基于PC 机的实时体绘制的临床应用场合,在基于Internet 的体数据可视化中有良好的应用前景。
1 自适应光线投射算法原理图1 自适应光线投射算法流程1.1光线投射算法 以图像空间为序的光线投射算法是从屏幕上的每一个像素点出发,根据设定的视线方向,发出一条射线,这条射线穿过三维数据场的体素矩阵,沿这条射线选择K个等间距的采样点,由距离某一采样点最近的8个体素的颜色值及不透明度值做三次线性插值,求出该采样点的不透明度值及颜色值。
在求出该条射线上的所有采样点的颜色值和不透明度值以后,可采用由后到前或由前到后的两种不同方法将每一采样点的颜色及不透明度进行组合,从而计算出屏幕上该像素点处的颜色值。
1.2自适应光线投射算法 考虑到在结果图像中相邻像素间存在很大的相关性,不必从图像平面中的每个像素点处发出射线,而是间隔若干个像素点投射出射线,如果对应组合而成的结果图像中的像素差值小于设定的阈值,则该间隔之间的像素就不必再投射出射线,而只需计算两间隔像素间的插值,否则必须细化后再投射出射线。
其次当发出光线上的累积不透明度达到1时,后面的采样点对光线合成已不再起作用,可以提前终止该光线上的采样,因此采用由前向后的图像合成方法。
自适应光线投射算法流程如图1所示,首先像平面分成若干正方形的区域,从正方形的4个顶点投射出光线,每条光线分成等距的采样间隔,采样点位于采样间隔中心处,通过对周围八个邻近点颜色和不透明度的三次线性插值得到采样点的颜色和不透明度,用简化的Phone光照模型对采样点进行消隐计算,由前向后的将各个采样点的颜色和不透明度值加以合成,当不透明度值累积为1时提前终止光线的投射。
如果正方形上发出的4条采样光线上所得最终差值小于域值ε,则不再进行下一步工作,否则,该正方形区域进一步分成4个二级正方形,投射出更多的光线,然后重复前面的步骤,直到最终颜色差值在域值范围之内或正方形的尺寸达到设定的最小值ωmin。
当所有正方形采样区域处理完后,像平面上的最终图像通过双线性插值法实现[13]。
2 直接体绘制技术要点2.1空间坐标变换 投射光线上采样点处坐标是像空间坐标,而体数据则形成物空间坐标,因此在计算采样点的颜色和不透明度时要涉及到空间坐标变换,这可通过平移、旋转等坐标变换来实现。
设像坐标至物坐标的变换函数为:A=TR(1)R=R x R y R z(2) 式中,T、R x、R y和R z分别为平移矩阵和绕x轴、y轴、z 轴的旋转矩阵,分别可表示成:T=100t x010t y001t z0001(3)R x=10000cos(<x)sin(<x)00-sin(<x)cos(<x)00001R y=cos(<y)0-sin(<y)0 0100 sin(<y)0cos(<y)0 0001R z=cos(<z)sin(<z)00-sin(<z)cos(<z)0000100001(4)2.2三次线性插值算法 体绘制涉及两种插值算法,最终图像形成时的双线性插值法和计算采样点数据的三次线性插值法。
双线性插值法仅限于二维平面,三次线性插值法则在三维空间上实现,假设采样点最近的相邻点的值分别为:f000、f001、f010、f011、f100、f101、f110、f111,用x、y、z表示采样点相对于000点的距离,则经三次线性插值后采样点f(p,q,r)的值可表示为:f(p,q,r)=(1-x)(1-y)(1-z)f000+x(1-y)(1-z)f001+ (1-x)y(1-z)f010+x y(1-z)f011+(1-x)(1-y)z f100+x (1-y)z f101+(1-x)y z f110+x y z f111(5)2.3简化的Phone光照模型 Phone光照模型可提高图形图像的真实感,一般可表示成:I=k a I a+6M i=1f i I li[k d(NL i)+k s(N H i)n](6)式中,I为局部光亮度;k a、k d、k s分别为环境、漫反射及镜面反射系数;M为点光源个数;Ia为环境光亮度分量;I li、f i为第i 个光源光强及衰减因子;N为单位法向量;L i为第i个光源的单位入射向量;H i为第i个光源的单位入射向量与单位视线向量的平均值,n为镜面高光指数。
在直接体绘制中,将该模型加以简化,采用单个点光源,n 设为常数1,则简化公式为:I=k a I a+f I l[k d(NL)+k s(N H)](7) 采用基于灰度梯度的中心差分法计算中间体素的表面法向量N,对于边界点处的法向量计算则采用向前或向后差分法。
中心差分法可表示成:Grad_x=[f(x i+1,y j,z k)-f(x i-1,y j,z k)]/2ΔxGrad_y=[f(x i,y j+1,z k)-f(x i,y j-1,z k)]/2ΔyGrad_z=[f(x i,y j,z k+1)-f(x i,y j,z k-1)]/2Δz(8) 2.4由前向后的图像合成原理 在由前向后图像合成的过程中,不透明度β必然逐步增大,当β值趋近于1时,说明该像素点的图像已接近于完全不透明,后面的体元不会再对该像素点的图像有所贡献,因而可以不必再计算了,从而可以省去无效的计算,提高计算速度。