CN103106685A - 一种基于gpu的腹部脏器三维可视化方法 - Google Patents
一种基于gpu的腹部脏器三维可视化方法 Download PDFInfo
- Publication number
- CN103106685A CN103106685A CN 201310015075 CN201310015075A CN103106685A CN 103106685 A CN103106685 A CN 103106685A CN 201310015075 CN201310015075 CN 201310015075 CN 201310015075 A CN201310015075 A CN 201310015075A CN 103106685 A CN103106685 A CN 103106685A
- Authority
- CN
- China
- Prior art keywords
- images
- image
- abdominal
- ray cast
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Apparatus For Radiation Diagnosis (AREA)
- Image Generation (AREA)
Abstract
一种基于GPU的腹部脏器三维可视化的方法,属于医学图像处理技术领域,计算机X射线断层扫描设备对人体腹部进行CT扫描;获取腹部CT图像,并对获取的腹部CT图像进行三维可视化处理,得到三维可视化处理的结果图像;对腹部CT图像进行对应点匹配插值得到新插值图像,由新插值图像与原腹部CT图像得到匹配插值后的腹部CT图像即体数据;进行光线投射,得到腹部CT图像光线投射结果图像;将腹部CT图像的三维可视化处理的结果图像在装有独立GPU的计算机屏幕上显示。在对医学图像三维可视化处理时先进行插值,使断层图像的层间隔减小;基于GPU进行光线投射,利用GPU高并发的特性、有效地降低计算时间。
Description
技术领域
本发明属于医学图像处理技术领域,具体涉及一种基于GPU的腹部脏器三维可视化方法。
背景技术
医学影像三维可视化技术是指基于科学计算可视化技术,从一系列二维断层医学图像中重建出三维图像,利用计算机显示并完成三维图像操作的技术。首先,对CT、MRI等医学体数据进行三维重建得到三维模型,对体数据的绘制结果从各个方向进行投影显示,便于医生从不同方向对人体内部结构进行观察,能辅助医生对感兴趣区域或感兴趣器官的大小形状和空间位置获得定量描述,帮助医生了解复杂的解剖细节,提供直观的视觉印象。在此基础上结合实际临床应用,实现计算机与用户的交互,对可视化结果进行任意平面切割,可以帮助实现手术模拟、手术规划和虚拟内窥镜等辅助诊断操作。提高医生诊断的准确率和医院的工作效率。人体内部结构十分复杂,通常医生无法观察到手术进行的实际情况,而且手术具有高危险性,不能预先在人体上进行模拟,利用可视化技术,在重构出的三维图像基础上进行计算机模拟,可以设计、选择最佳手术方案。还可以在手术过程中对手术进行情况在屏幕上予以监视,使医生们做到心中有数,从而提高手术的成功率。其次,目前国内多数医院仍采用传统的胶片形式帮助医生诊断,大量的胶片不但存储是很大问题,也是不小的开支。实现医院数字化,不但方便医生诊断、医院管理,更能节约开支。因而医学图像三维可视化技术对于促进图像处理和可视化技术的发展和应用将起到积极的推动作用,研究并实现二维医学图像的三维可视化,具有重要的价值。
医学数据可视化算法分为两大类,基于构造中间几何图元的面绘制算法和体绘制算法。面绘制需要先从体数据中重建物体的表面模型,然后利用传统图形学技术及硬件实现表面的绘制与显示;而体绘制则直接以体素为基本单元,应用视觉原理,通过对体数据重新采样来合成产生三维图像。
面绘制是从3D数据场中抽取有意义和直观信息的一种重要手段。它实际上是把体数据转换成一种逼近面表示,从而可以进一步利用计算机图形学技术,甚至已有的硬件加速技术完成感兴趣信息的提取。由于它借助于面表示这样一个中间转换过程,而不是直接把体数据投向屏幕进行绘制,有时我们又称之为间接体绘制。这种三维几何表达的模型最常用的就是表面模型,一般以平面片特别是三角面片来逼近表示。面绘制重建的方法可分为基于轮廓的表面重建和基于体素的表面重建,基于体素的表面重建最具代表性的是Cuberille算法,Marching Cubes算法和Dividing Cubes算法。
体绘制是以某种方式将整个数据场半透明地投影到2D 屏幕上,并不借助中间几何图形。直接由三维数据场产生屏幕上的二维图像。这种算法能产生三维数据场的整体图像,包括每一个细节,并具有图像质量高、便于并行处理等优点。其主要问题是,计算量很大,且难以利用传统的图形硬件实现绘制,因而计算时间较长。目前应用于医学体数据的体绘制算法主要有基于图像空间的光线投射(Raycasting)算法,基于物体空间扫描的溅射(Splatting)算法,错切-变形(shear-warp)算法,硬件辅助的三维纹理映射(hardware-assisted 3D texture mapping)算法。
体绘制方法都可以通过积分函数来进行计算,光线投射算法是一种以图像为序的直接体绘制方法,最早由M.Levoy于1988年提出,也是体绘制中最基本和最灵活的算法。其基本思想及特点是:首先对于图像中要绘制的像素,根据视点方向,发射出一条射线,穿过像素中心向物体投射一单束光线,沿着射线,从遇到体数据开始,计算并整合遇到的体数据的光学属性。光线投射算法采用为每个体素分配透明度和颜色值的方法来合成图像,因此有利于保留图像的细节,绘制高品质的图像,特别适用于绘制区域特征模糊,体素特征相关性高的图像。但因为需要遍历每个体素,而且当观察方向发生变化时,数据中的采样点之间的前后关系也发生变化,这样就需要进行重新采样和计算,因此计算量较大。
随着医学影像技术的发展,成像分辨率日益提升。光线投射法的每一次绘制都需要对整个体数据进行计算和处理,处理数据量巨大,而传统的腹部脏器三维可视化***主要由基于CPU的编程语言(如C\C++等)实现,运行时间较慢,缺乏可以用于医学诊断的实时性,使得该***在实际应用中有一定的限制。因此***中可视化算法性能上的提升,对于整个医学诊断工作和计算机图形图像处理工作都有着极为重要的价值。
在腹部脏器可视化过程中,存在着高度的并行性,因此适合用GPU来进行加速。与CPU相比,GPU具有并行的计算架构以及超长流水线,这种架构虽然在处理少量数据时速度不及频率更高的CPU,但在处理如医学图像等大量数据时速度远远超过CPU。同时GPU使用SIMD (Single Instruction Multiple Data,单指令多数据流)技术,对于需要并行计算的数据只需编写单个运算操作即可实现并行计算过程。综上所述基于GPU的腹部脏器三维可视化***相对于传统基于CPU的该***,运算效率更高,能够保证***的实时性,具有更高的应用价值。
GLSL(The OpenGL Shading Language)是OpenGL着色语言的简称,它是一种用于创建OpenGL着色器的语言。作为OpenGL 2.0标准的一部分,GLSL允许应用程序显式的指定处理顶点和处理片段时进行的操作。借助GLSL能够实现基于GPU的腹部脏器三维可视化方法,提升***的实时性。
发明内容
针对现有技术存在的问题,本发明提供一种基于GPU的腹部脏器三维可视化方法。
本发明的技术方案是:
一种基于GPU的腹部脏器三维可视化的方法,包括以下步骤:
步骤1:计算机X射线断层扫描设备对人体腹部进行CT扫描;
步骤2:获取腹部CT图像,每组腹部CT图像包含若干张腹部断层扫描图像;
步骤3:对获取的腹部CT图像进行三维可视化处理,得到三维可视化处理的结果图像;
步骤3.1:对腹部CT图像进行对应点匹配插值,在每相邻前后两张腹部断层扫描图像间得到新插值图像,由新插值图像与原腹部CT图像得到匹配插值后的腹部CT图像即体数据;
步骤3.2:从人在计算机内的虚拟视点经由光线投射初始空白图像中每一像素点向体数据中发射虚拟光线,进行光线投射,计算每一像素点的光线投射显示结果,所有像素点光线投射显示结果的集合构成腹部CT图像光线投射结果图像;
步骤3.3:对体数据进行任意平面切割,将非感兴趣区域从体数据中切除,对切割后的体数据进行光线投射,得到切割后体数据的光线投射结果图像;
步骤3.4:若需要同时显示多个体数据,则进行多体素光线投射,将不同体数据的光线投射结果图像合成至同一结果图像内作为三维可视化处理的结果图像,否则直接将切割后体数据的光线投射结果图像作为三维可视化处理的结果图像;
步骤4:将腹部CT图像的三维可视化处理的结果图像在装有独立GPU的计算机屏幕上显示。
所述步骤3.1对腹部CT图像进行对应点匹配插值,在每相邻前后两张腹部断层扫描图像间得到新插值图像,由新插值图像与原腹部CT图像得到匹配插值后的腹部CT图像即体数据,具体步骤如下:
步骤3.1.1:对腹部CT图像进行匹配插值,在每相邻前后两张腹部断层扫描图像间得到新插值图像;
步骤3.1.2:对每个新插值图像上的所有点,计算其相邻前后两张腹部断层扫描图像中对应点的灰度差,并设定灰度差阈值;
步骤3.1.3:判断计算出的灰度差是否大于灰度差阈值:是,则设定搜索窗口半径和灰度阈值,在相邻前后两张腹部断层扫描图像中分别以该两张图像的对应点为中心以搜索窗口半径为半径的匹配窗,在匹配窗内选取最佳匹配点以决定当前点的灰度值;否则,通过三次样条插值求当前点的灰度值;
步骤3.1.4:得到每个新插值图像上的所有点的灰度值;
步骤3.1.5:由原腹部CT图像灰度值与每个新插值图像上的所有点的灰度值,得到匹配插值后的腹部CT图像即体数据,体数据中的所有像素点构成一个三维的数据场。
所述步骤3.2从人在计算机内的虚拟视点经由光线投射初始空白图像中每一像素点向体数据中发射虚拟光线,进行光线投射,计算每一像素点的光线投射显示结果,所有像素点光线投射显示结果的集合构成腹部CT图像光线投射结果图像,具体步骤如下:
步骤3.2.1:将体数据作为三维纹理加载至GPU的缓存中;
步骤3.2.2:设定颜色传递函数与透明度传递函数,并将这两个传递函数作为一维纹理分别加载至GPU的缓存中;
步骤3.2.3:从人在计算机内的虚拟视点经由光线投射初始空白图像中每一像素点向体数据中发射虚拟光线,进行光线投射;
步骤3.2.4:在GPU内并行处理所有投射的光线,沿光线进行重采样,对采样结果进行合成,并根据设定的颜色传递函数与透明度传递函数计算每一像素点的颜色和不透明度,即得到每一像素点的光线投射显示结果;
步骤3.2.5:所有光线投射显示结果的集合构成腹部CT图像光线投射结果图像。
所述步骤3.3对体数据进行任意平面切割,将非感兴趣区域从体数据中切除,对切割后的体数据进行光线投射,得到切割后体数据的光线投射结果图像,具体步骤如下:
步骤3.3.1:用户在体数据上选定四个点,以确定切割平面;
步骤3.3.2:将体数据中位于切割平面外的像素点灰度值设为0,即将非感兴趣区域从体数据中切除;
步骤3.3.3: 从人在计算机内的虚拟视点经由腹部CT图像中每一像素点向体数据中发射虚拟光线,计算每一像素点的光线投射显示结果,所有像素点光线投射显示结果的集合构成切割后体数据的光线投射结果图像。
所述步骤3.4中的进行多体素光线投射,将不同体数据的光线投射结果图像合成至同一结果图像内作为三维可视化处理的结果图像,具体方法如下:
将多个体数据置于同一空间,对于多个体数据的未重合区域,多体素光线投射的结果图像与腹部CT图像光线投射的结果图像一致;对于多个体数据的重合区域,设定权重因子ω,多个体数据的重合区域结果图像I计算公式如下:
I = ω·I1 + (1 – ω·α1)·I2
其中,I1与I2分别表示两个重合的体数据的光线投射结果图像,α1表示第一幅图像中的不透明度,如果重合区域包含两个以上体数据,则先求两个重合体数据的结果,将得到的结果再与第三个体数据进行计算,以此类推。
所述步骤3.1.3中的设定搜索窗口半径和灰度阈值,在相邻前后两张腹部断层扫描图像中分别以对应点为中心以搜索窗口半径为半径的匹配窗,在匹配窗内选取最佳匹配点以决定当前点的灰度值,具体步骤如下:
步骤3.1.3.1:将相邻前后两张腹部断层扫描图像任意一张设为目标图像,另一张设为参考图像,并设定相异度权重因子,对目标图像匹配窗中灰度大于灰度阈值的点Pk,计算该点与参考图像匹配窗中每一点Pk+1的相异度,并选择相异度最小的点作为Pk的最佳匹配点;
步骤3.1.3.2:交换参考图像和目标图像,重新执行步骤3.1.3.1,对于两次结果一致的最佳匹配点进行线性插值,求出新插值图像中点的灰度值,否则使用三次样条插值求新插值图像中点的灰度值。
所述步骤3.2.4在GPU内并行处理所有投射的光线,沿光线进行重采样,对采样结果进行合成,并根据设定的颜色传递函数与透明度传递函数计算每一像素点的颜色和不透明度,即得到每一像素点的光线投射显示结果,具体步骤如下:
步骤3.2.4.1:对于一条投射光线L,获取其在数据场入射点的投影坐标和出射点的投影坐标;
步骤3.2.4.2:设定采样间隔,即在投射光线L进入数据场后每间隔采样间隔距离采样一次;
步骤3.2.4.3:对于一采样点P,将其投影坐标β转换为模型局部坐标α;
步骤3.2.4.4:对采样点P的模型局部坐标α在数据场中进行三维纹理查找,得到P点灰度值;
步骤3.2.4.5:对P点灰度值在颜色传递函数与透明度传递函数中分别进行一维纹理查找,得到P点的颜色与透明度;
步骤3.2.4.6:对透明度进行不透明度修正,消除采样点过密可能导致的过采样现象;
步骤3.2.4.7:根据Phone光照模型求采样点P的最终颜色I;
步骤3.2.4.8:对投射光线L上所有采样点的颜色求平均颜色作为在结果图像中对应像素显示的颜色,修正后的透明度求和得到对应像素的透明度。
所述的基于GPU的腹部脏器三维可视化的方法采用的三维可视化***,包括装有独立GPU的计算机和计算机X射线断层扫描设备;
所述计算机X射线断层扫描设备用于获取腹部CT图像,并将其传输至装有独立GPU的计算机;
所述装有独立GPU的计算机用于对腹部CT图像进行三维可视化图像数据处理。
有益效果:
本发明在对医学图像三维可视化处理时先进行插值,使断层图像的层间隔减小;基于GPU进行光线投射,利用GPU高并发的特性、有效地降低计算时间;引入Phone光照模型完善体绘制效果,增强真实感;对多体数据的多体素光线投射针对原来对全身进行可视化和单个体数据进行绘制的一些不足和弊病,如对全身所有体数据统一设置传递函数、没有针对性,可视化效果不明显等,利用已分割好的腹部脏器,分别显示,分别设置传递函数,有效地对腹部脏器进行了可视化,能显示不同腹部脏器的细节信息;本发明最后给出三维体数据场的任意平面切割的实现方法,能更丰富的反映体数据的内部信息,满足医生对图像质量和交互性能的需要。
附图说明
图1是本发明的具体实施方式的光线投射示意图;
图2是传统基于CPU的光线投射流程图;
图3是本发明的具体实施方式的方法的光线投射流程图;
图4是本发明的具体实施方式的基于GPU的腹部脏器三维可视化的方法流程图;
图5是本发明的具体实施方式的对获取的腹部CT图像进行三维可视化处理的流程图;
图6是本发明的具体实施方式的任意两个角度的光线投射结果图像;
图7是本发明的具体实施方式的第一组腹部CT图像进行体数据切割的结果图像,其中(a)为冠状切割结果图像,(b)为横断面切割结果图像,(c)为矢状面切割结果图像,(d)~(f)为任意平面切割结果图像;
图8是本发明的具体实施方式的第一组、第四组和第五组腹部CT图像进行多体素光线投射结果图像,其中,(a)为正常可视化结果图像,(b)为突出显示胆囊的可视化结果图像。
具体实施方式
下面结合附图对本发明的具体实施方式做详细说明。
本实施方式中,采用的三维可视化***,包括装有独立GPU的计算机和计算机X射线断层扫描设备;
计算机X射线断层扫描设备用于获取腹部CT图像,并将其传输至装有独立GPU的计算机;
装有独立GPU的计算机用于对腹部CT图像进行三维可视化图像数据处理,硬件配置为Intel Core2 Duo T6500 CPU、2GB内存、采用GPU为NVIDIA GeForce GT130M图形显示卡。
一种基于GPU的腹部脏器三维可视化的方法,如图4所示,包括以下步骤:
步骤1:计算机X射线断层扫描设备对人体腹部进行CT扫描;
步骤2:获取五组腹部CT图像,每组腹部CT图像包含若干张腹部断层扫描图像;
腹部CT图像共五组:第一组为肝脏CT图像,包括163张肝脏断层扫描图像,该肝脏CT图像大小为512×512×163,像素间距为0.68×0.68×2mm;第二组为肝脏CT图像,包括85张肝脏断层扫描图像,该肝脏CT图像大小为256×256×85,层间距为0.68×0.68×2mm;第三组为肝脏CT图像,包括185张肝脏断层扫描图像,该肝脏CT图像大小为708×706×185,层间距为0.68×0.68×2mm;第四组为脾脏CT图像,包括98张脾脏断层扫描图像,该脾脏CT图像大小为512×512×98,层间距为0.68×0.68×2mm;第五组为胆囊CT图像,包括46张胆囊断层扫描图像,该胆囊CT图像大小为560×558×46,层间距为0.68×0.68×2mm。
步骤3:对获取的五组腹部CT图像进行三维可视化处理,得到三维可视化处理的结果图像,流程如图5所示,步骤如下:
步骤3.1:对五组腹部CT图像进行对应点匹配插值,在每相邻前后两张腹部断层扫描图像间得到新插值图像,由新插值图像与原腹部CT图像得到匹配插值后的腹部CT图像即体数据,具体步骤如下:
步骤3.1.1:对腹部CT图像进行匹配插值,在每相邻前后两张腹部断层扫描图像间得到新插值图像,新插值图像上的点记为(xi,yj,z),其相邻前后两张腹部断层扫描图像中对应点分别记为(xi,yj,zk)、(xi,yj,zk+1);
步骤3.1.2:对每个新插值图像上的所有点,计算其相邻前后两张腹部断层扫描图像中对应点的灰度差Dij,并设定灰度差阈值T为10;
步骤3.1.3:判断计算出的灰度差Dij是否大于灰度差阈值T:是,则设定搜索窗口半径W=5和灰度阈值V=0,在相邻前后两张腹部断层扫描图像中分别以该两张图像的对应点为中心以搜索窗口半径W为半径的匹配窗,在匹配窗内选取最佳匹配点以决定当前点的灰度值;否则,通过三次样条插值求当前点的灰度值;
其中,设定搜索窗口半径W=5和灰度阈值V=0,在相邻前后两张腹部断层扫描图像中分别以对应点为中心以搜索窗口半径W为半径的匹配窗,在匹配窗内选取最佳匹配点以决定当前点的灰度值,具体步骤如下:
步骤3.1.3.1:将相邻前后两张腹部断层扫描图像任意一张设为目标图像,另一张设为参考图像,并设定相异度权重因子u1=0.25,u2=0.25,u3=0.25,u4=0.25,对目标图像匹配窗中灰度大于灰度阈值V的点Pk,计算该点与参考图像匹配窗中每一点Pk+1的相异度,并选择相异度最小的点作为Pk的最佳匹配点;
求点Pk、Pk+1间相异度的C(Pk,Pk+1)的公式如下:
C(Pk,Pk+1)=u1[f(Pk)-f(Pk+1)]ie+u2[g(Pk)-g(Pk+1)]je+u3[θ(Pk)-θ(Pk+1)]ke+u4D[Pk,Pk+1]le
其中,ie、je、ke、le分别表示灰度、梯度、梯度方向和偏移四个方向上的单位向量,f(Pk)表示第k层点的灰度值,g(Pk)表示第k层点的梯度值,θ(Pk)表示第k层点的梯度方向,D[Pk,Pk+1]表示第k层和第k+1层上进行计算的两个点在水平面上投影的距离;
步骤3.1.3.2:交换参考图像和目标图像,重新执行步骤3.1.3.1,对于两次结果一致的最佳匹配点进行线性插值,求出新插值图像中点(xi,yj,z)的灰度值,否则使用三次样条插值求点(xi,yj,z)的灰度值。
步骤3.1.4:得到每个新插值图像上的所有点的灰度值;
步骤3.1.5:由原腹部CT图像灰度值与每个新插值图像上的所有点的灰度值,得到匹配插值后的腹部CT图像即体数据,体数据中的所有像素点构成一个三维的数据场。
对五组腹部CT图像均进行插值,插值后的腹部CT图像数据量增加了一倍,能够有效地增强三维可视化的效果。
步骤3.2:从人在计算机内的虚拟视点经由光线投射初始空白图像中每一像素点向体数据中发射虚拟光线,进行光线投射,如图1所示,计算每一像素点的光线投射显示结果,所有像素点光线投射显示结果的集合构成腹部CT图像光线投射结果图像,光线投射的流程如图3所示,具体步骤如下:
步骤3.2.1:将体数据作为三维纹理加载至GPU的缓存中;
步骤3.2.2:设定颜色传递函数与透明度传递函数,并将这两个传递函数作为一维纹理分别加载至GPU的缓存中;
颜色传递函数与透明度传递函数的形式相同,表示如下:
其中,f(x)表示颜色传递函数或透明度传递函数,x表示采样点灰度值,Ti为设定的阈值,vi为设定的采样结果;
本实施方式中,设定颜色传递函数和透明度传递函数如下,
其中f1(x)、f2(x)、f3(x)分别对应肝脏图像、脾脏图像和胆囊图像的颜色传递函数,f4(x)为所有类型图像共用的透明度传递函数;
步骤3.2.3:从人在计算机内的虚拟视点经由光线投射初始空白图像中每一像素点向体数据中发射虚拟光线,进行光线投射;
先建立一张空白的结果图像作为光线投射初始空白图像,用光线投射求结果图像的内容。
步骤3.2.4:在GPU内并行处理所有投射的光线,沿光线进行重采样,对采样结果进行合成,并根据设定的颜色传递函数与透明度传递函数计算每一像素点的颜色和不透明度,即得到每一像素点的光线投射显示结果,具体步骤如下:
步骤3.2.4.1:对于一条投射光线L,获取其在数据场入射点P1(x2,y2, z2) 的投影坐标和出射点P2(x1, y1, z1)的投影坐标,则投射光线L可表示为:
L = P2(x2, y2, z2) – P1(x1, y1, z1)
步骤3.2.4.2:设定采样间隔delta=0.05,即在投射光线L进入数据场后每间隔delta距离采样一次;
步骤3.2.4.3:对于一采样点P,将其投影坐标β转换为模型局部坐标α,公式如下:
α = V-1·Proj-1·β
其中V为模型-视图矩阵,Proj为投影矩阵,均通过访问GPU获取,β的x、y坐标与P1相同,β的z坐标计算公式如下:
z = z1 + delta·(n-1)
其中n表示采样点P是投射光线L上的第n个采样点;
步骤3.2.4.4:对采样点P的模型局部坐标α在数据场中进行三维纹理查找,得到P点灰度值G;
步骤3.2.4.5:对G在颜色传递函数与透明度传递函数中分别进行一维纹理查找,得到P点的颜色C与透明度A;
步骤3.2.4.6:对A进行不透明度修正,消除采样点过密可能导致的过采样现象,不透明度修正的公式如下:
A’ = 1 - (1 - A)delta·N
其中A’为修正后的透明度,N为人工设定的过采样因子,本实施方式中,设N=2;
步骤3.2.4.7:根据Phone光照模型求采样点P的最终颜色I,公式如下:
其中kd为材质对环境的反射系数,ks为材质的镜面反射系数,在本实施方式中,kd与ks均为C,N表示P点单位法向量,L0表示从屏幕上对应像素指向光源的单位向量,V表示P点到虚拟视点的观察方向,R代表反射光线的方向,Ia与Il分别表示环境光强度与光源强度,均为人工设定,Ia取0.15,Il取1.0,ns表示高光指数,ns=0.5;
步骤3.2.4.8:对投射光线L上所有采样点的颜色求平均颜色作为在结果图像中对应像素显示的颜色Cxy,修正后的透明度求和得到对应像素的透明度Axy。
对第一组、第二组腹部CT图像进行光线投射后,任意两个角度的光线投射结果图像如图6所示。
步骤3.2.5:所有光线投射显示结果的集合构成腹部CT图像光线投射结果图像。
传统的基于CPU的光线投射流程如图2所示,基于CPU的光线投射需要循环多次,时间成本高,而本实施方式的基于GPU的光线投射可以直接得出投射结果。
步骤3.3:对体数据进行任意平面切割,将非感兴趣区域从体数据中切除,对切割后的体数据进行光线投射,得到切割后体数据的光线投射结果图像,具体步骤如下:
步骤3.3.1:用户在体数据上选定四个点,以确定切割平面,切割平面方程表示如下:
Ax + By + Cz + D = 0
其中,A、B、C、D均为系数,根据四个点的坐标求解切割平面方程组得到;
步骤3.3.2:将体数据中位于切割平面外的像素点灰度值设为0,即将非感兴趣区域从体数据中切除;
步骤3.3.3: 从人在计算机内的虚拟视点经由腹部CT图像中每一像素点向体数据中发射虚拟光线,计算每一像素点的光线投射显示结果,所有像素点光线投射显示结果的集合构成切割后体数据的光线投射结果图像。
对第一组腹部CT图像进行体数据切割的结果如图7所示,分别进行了如图7(a)所示的冠状面切割、如图7(b)所示的横断面切割、如图7 (c)所示的矢状面切割以及图7(d)、(e)、(f)所示的任意平面切割。
步骤3.4:若需要同时显示多个体数据,则进行多体素光线投射,将不同体数据的光线投射结果图像合成至同一结果图像内作为三维可视化处理的结果图像,否则直接将切割后体数据的光线投射结果图像作为三维可视化处理的结果图像;
进行多体素光线投射,将不同体数据的结果合成至同一结果图像内,具体方法如下:
将多个体数据置于同一空间,对于多个体数据的未重合区域,多体素光线投射的结果图像与腹部CT图像光线投射的结果图像一致;对于多个体数据的重合区域,设定权重因子ω为0.5,多个体数据的重合区域结果图像I计算公式如下:
I = ω·I1 + (1 – ω·α1)·I2
其中,I1与I2分别表示两个重合的体数据的光线投射结果图像,α1表示第一幅图像中的不透明度,如果重合区域包含两个以上体数据,则先求两个重合体数据的结果,将得到的结果再与第三个体数据进行计算,以此类推。
对第一组、第四组、第五组腹部CT图像进行多体素光线投射,结果图像如图8所示,其中A表示肝脏,即第一组腹部CT图像结果,B表示脾脏,即第四组腹部CT图像结果,C表示胆囊,即第五组腹部CT图像结果。
在本实施例中,步骤3.3和步骤3.4均为可选步骤,当用户不需要切割体数据时则无需执行步骤3.3,同样地,当用户不需要同时显示多个体数据则无需执行步骤3.4。
步骤4:将腹部CT图像的三维可视化处理的结果图像在装有独立GPU的计算机屏幕上显示。
Claims (8)
1.一种基于GPU的腹部脏器三维可视化的方法,其特征在于:包括以下步骤:
步骤1:计算机X射线断层扫描设备对人体腹部进行CT扫描;
步骤2:获取腹部CT图像,每组腹部CT图像包含若干张腹部断层扫描图像;
步骤3:对获取的腹部CT图像进行三维可视化处理,得到三维可视化处理的结果图像;
步骤3.1:对腹部CT图像进行对应点匹配插值,在每相邻前后两张腹部断层扫描图像间得到新插值图像,由新插值图像与原腹部CT图像得到匹配插值后的腹部CT图像即体数据;
步骤3.2:从人在计算机内的虚拟视点经由光线投射初始空白图像中每一像素点向体数据中发射虚拟光线,进行光线投射,计算每一像素点的光线投射显示结果,所有像素点光线投射显示结果的集合构成腹部CT图像光线投射结果图像;
步骤3.3:对体数据进行任意平面切割,将非感兴趣区域从体数据中切除,对切割后的体数据进行光线投射,得到切割后体数据的光线投射结果图像;
步骤3.4:若需要同时显示多个体数据,则进行多体素光线投射,将不同体数据的光线投射结果图像合成至同一结果图像内作为三维可视化处理的结果图像,否则直接将切割后体数据的光线投射结果图像作为三维可视化处理的结果图像;
步骤4:将腹部CT图像的三维可视化处理的结果图像在装有独立GPU的计算机屏幕上显示。
2.根据权利要求1所述的基于GPU的腹部脏器三维可视化的方法,其特征在于:所述步骤3.1对腹部CT图像进行对应点匹配插值,在每相邻前后两张腹部断层扫描图像间得到新插值图像,由新插值图像与原腹部CT图像得到匹配插值后的腹部CT图像即体数据,具体步骤如下:
步骤3.1.1:对腹部CT图像进行匹配插值,在每相邻前后两张腹部断层扫描图像间得到新插值图像;
步骤3.1.2:对每个新插值图像上的所有点,计算其相邻前后两张腹部断层扫描图像中对应点的灰度差,并设定灰度差阈值;
步骤3.1.3:判断计算出的灰度差是否大于灰度差阈值:是,则设定搜索窗口半径和灰度阈值,在相邻前后两张腹部断层扫描图像中分别以该两张图像的对应点为中心以搜索窗口半径为半径的匹配窗,在匹配窗内选取最佳匹配点以决定当前点的灰度值;否则,通过三次样条插值求当前点的灰度值;
步骤3.1.4:得到每个新插值图像上的所有点的灰度值;
步骤3.1.5:由原腹部CT图像灰度值与每个新插值图像上的所有点的灰度值,得到匹配插值后的腹部CT图像即体数据,体数据中的所有像素点构成一个三维的数据场。
3.根据权利要求1所述的基于GPU的腹部脏器三维可视化的方法,其特征在于:所述步骤3.2从人在计算机内的虚拟视点经由光线投射初始空白图像中每一像素点向体数据中发射虚拟光线,进行光线投射,计算每一像素点的光线投射显示结果,所有像素点光线投射显示结果的集合构成腹部CT图像光线投射结果图像,具体步骤如下:
步骤3.2.1:将体数据作为三维纹理加载至GPU的缓存中;
步骤3.2.2:设定颜色传递函数与透明度传递函数,并将这两个传递函数作为一维纹理分别加载至GPU的缓存中;
步骤3.2.3:从人在计算机内的虚拟视点经由光线投射初始空白图像中每一像素点向体数据中发射虚拟光线,进行光线投射;
步骤3.2.4:在GPU内并行处理所有投射的光线,沿光线进行重采样,对采样结果进行合成,并根据设定的颜色传递函数与透明度传递函数计算每一像素点的颜色和不透明度,即得到每一像素点的光线投射显示结果;
步骤3.2.5:所有光线投射显示结果的集合构成腹部CT图像光线投射结果图像。
4.根据权利要求1所述的基于GPU的腹部脏器三维可视化的方法,其特征在于:所述步骤3.3对体数据进行任意平面切割,将非感兴趣区域从体数据中切除,对切割后的体数据进行光线投射,得到切割后体数据的光线投射结果图像,具体步骤如下:
步骤3.3.1:用户在体数据上选定四个点,以确定切割平面;
步骤3.3.2:将体数据中位于切割平面外的像素点灰度值设为0,即将非感兴趣区域从体数据中切除;
步骤3.3.3: 从人在计算机内的虚拟视点经由腹部CT图像中每一像素点向体数据中发射虚拟光线,计算每一像素点的光线投射显示结果,所有像素点光线投射显示结果的集合构成切割后体数据的光线投射结果图像。
5.根据权利要求1所述的基于GPU的腹部脏器三维可视化的方法,其特征在于:所述步骤3.4中的进行多体素光线投射,将不同体数据的光线投射结果图像合成至同一结果图像内作为三维可视化处理的结果图像,具体方法如下:
将多个体数据置于同一空间,对于多个体数据的未重合区域,多体素光线投射的结果图像与腹部CT图像光线投射的结果图像一致;对于多个体数据的重合区域,设定权重因子ω,多个体数据的重合区域结果图像I计算公式如下:
I = ω·I
1
+ (1 – ω·α
1
)·I
2
其中,I 1 与I 2 分别表示两个重合的体数据的光线投射结果图像,α 1 表示第一幅图像中的不透明度,如果重合区域包含两个以上体数据,则先求两个重合体数据的结果,将得到的结果再与第三个体数据进行计算,以此类推。
6.根据权利要求2所述的基于GPU的腹部脏器三维可视化的方法,其特征在于:所述步骤3.1.3中的设定搜索窗口半径和灰度阈值,在相邻前后两张腹部断层扫描图像中分别以对应点为中心以搜索窗口半径为半径的匹配窗,在匹配窗内选取最佳匹配点以决定当前点的灰度值,具体步骤如下:
步骤3.1.3.1:将相邻前后两张腹部断层扫描图像任意一张设为目标图像,另一张设为参考图像,并设定相异度权重因子,对目标图像匹配窗中灰度大于灰度阈值的点Pk,计算该点与参考图像匹配窗中每一点Pk+1的相异度,并选择相异度最小的点作为Pk的最佳匹配点;
步骤3.1.3.2:交换参考图像和目标图像,重新执行步骤3.1.3.1,对于两次结果一致的最佳匹配点进行线性插值,求出新插值图像中点的灰度值,否则使用三次样条插值求新插值图像中点的灰度值。
7.根据权利要求3所述的基于GPU的腹部脏器三维可视化的方法,其特征在于:所述步骤3.2.4在GPU内并行处理所有投射的光线,沿光线进行重采样,对采样结果进行合成,并根据设定的颜色传递函数与透明度传递函数计算每一像素点的颜色和不透明度,即得到每一像素点的光线投射显示结果,具体步骤如下:
步骤3.2.4.1:对于一条投射光线L,获取其在数据场入射点的投影坐标和出射点的投影坐标;
步骤3.2.4.2:设定采样间隔,即在投射光线L进入数据场后每间隔采样间隔距离采样一次;
步骤3.2.4.3:对于一采样点P,将其投影坐标β转换为模型局部坐标α;
步骤3.2.4.4:对采样点P的模型局部坐标α在数据场中进行三维纹理查找,得到P点灰度值;
步骤3.2.4.5:对P点灰度值在颜色传递函数与透明度传递函数中分别进行一维纹理查找,得到P点的颜色与透明度;
步骤3.2.4.6:对透明度进行不透明度修正,消除采样点过密可能导致的过采样现象;
步骤3.2.4.7:根据Phone光照模型求采样点P的最终颜色I;
步骤3.2.4.8:对投射光线L上所有采样点的颜色求平均颜色作为在结果图像中对应像素显示的颜色,修正后的透明度求和得到对应像素的透明度。
8.如权利要求1所述的基于GPU的腹部脏器三维可视化的方法所采用的腹部脏器三维可视化***,其特征在于:包括装有独立GPU的计算机和计算机X射线断层扫描设备;
所述计算机X射线断层扫描设备用于获取腹部CT图像,并将其传输至装有独立GPU的计算机;
所述装有独立GPU的计算机用于对腹部CT图像进行三维可视化图像数据处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310015075.2A CN103106685B (zh) | 2013-01-16 | 2013-01-16 | 一种基于gpu的腹部脏器三维可视化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310015075.2A CN103106685B (zh) | 2013-01-16 | 2013-01-16 | 一种基于gpu的腹部脏器三维可视化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103106685A true CN103106685A (zh) | 2013-05-15 |
CN103106685B CN103106685B (zh) | 2015-08-12 |
Family
ID=48314510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310015075.2A Active CN103106685B (zh) | 2013-01-16 | 2013-01-16 | 一种基于gpu的腹部脏器三维可视化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103106685B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455970A (zh) * | 2013-08-30 | 2013-12-18 | 天津市测绘院 | 利用三维数字城市***模型非可见部分的加速显示方法 |
CN104318057A (zh) * | 2014-09-25 | 2015-01-28 | 新乡医学院第一附属医院 | 医学影像三维可视化*** |
CN104599311A (zh) * | 2013-10-31 | 2015-05-06 | 镇江华扬信息科技有限公司 | 基于gpu的三维医学图像混合可视化*** |
CN104658028A (zh) * | 2013-11-18 | 2015-05-27 | 清华大学 | 在三维图像中快速标记目标物的方法和装置 |
CN104992444A (zh) * | 2015-07-14 | 2015-10-21 | 山东易创电子有限公司 | 一种人体断层数据的切割方法及*** |
CN106530382A (zh) * | 2016-12-09 | 2017-03-22 | 江西中科九峰智慧医疗科技有限公司 | 医学三维图像的数据处理方法及*** |
CN107146262A (zh) * | 2017-04-18 | 2017-09-08 | 清华大学深圳研究生院 | 一种oct图像的三维可视化方法和*** |
CN107292865A (zh) * | 2017-05-16 | 2017-10-24 | 哈尔滨医科大学 | 一种基于二维图像处理的立体显示方法 |
CN108492299A (zh) * | 2018-03-06 | 2018-09-04 | 天津天堰科技股份有限公司 | 一种三维图像的切割方法 |
CN109377549A (zh) * | 2018-09-29 | 2019-02-22 | 浙江工业大学 | 一种oct指尖数据的实时处理与三维可视化方法 |
CN109767468A (zh) * | 2019-01-16 | 2019-05-17 | 上海长征医院 | 脏器体积检测方法及装置 |
CN113347407A (zh) * | 2021-05-21 | 2021-09-03 | 华中科技大学 | 一种基于裸眼3d医学图像显示*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1776747A (zh) * | 2005-11-24 | 2006-05-24 | 上海交通大学 | 医学图像中基于gpu硬件加速的体绘制方法 |
CN101794460A (zh) * | 2010-03-09 | 2010-08-04 | 哈尔滨工业大学 | 基于光线投射体绘制算法的人体心脏三维解剖组织结构模型可视化方法 |
-
2013
- 2013-01-16 CN CN201310015075.2A patent/CN103106685B/zh active Active
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455970A (zh) * | 2013-08-30 | 2013-12-18 | 天津市测绘院 | 利用三维数字城市***模型非可见部分的加速显示方法 |
CN104599311A (zh) * | 2013-10-31 | 2015-05-06 | 镇江华扬信息科技有限公司 | 基于gpu的三维医学图像混合可视化*** |
CN104658028A (zh) * | 2013-11-18 | 2015-05-27 | 清华大学 | 在三维图像中快速标记目标物的方法和装置 |
CN104318057A (zh) * | 2014-09-25 | 2015-01-28 | 新乡医学院第一附属医院 | 医学影像三维可视化*** |
CN104992444A (zh) * | 2015-07-14 | 2015-10-21 | 山东易创电子有限公司 | 一种人体断层数据的切割方法及*** |
CN106530382A (zh) * | 2016-12-09 | 2017-03-22 | 江西中科九峰智慧医疗科技有限公司 | 医学三维图像的数据处理方法及*** |
CN107146262A (zh) * | 2017-04-18 | 2017-09-08 | 清华大学深圳研究生院 | 一种oct图像的三维可视化方法和*** |
CN107146262B (zh) * | 2017-04-18 | 2021-01-26 | 广州广华深启科技有限责任公司 | 一种oct图像的三维可视化方法和*** |
CN107292865A (zh) * | 2017-05-16 | 2017-10-24 | 哈尔滨医科大学 | 一种基于二维图像处理的立体显示方法 |
CN107292865B (zh) * | 2017-05-16 | 2021-01-26 | 哈尔滨医科大学 | 一种基于二维图像处理的立体显示方法 |
CN108492299A (zh) * | 2018-03-06 | 2018-09-04 | 天津天堰科技股份有限公司 | 一种三维图像的切割方法 |
CN108492299B (zh) * | 2018-03-06 | 2022-09-16 | 天津天堰科技股份有限公司 | 一种三维图像的切割方法 |
CN109377549A (zh) * | 2018-09-29 | 2019-02-22 | 浙江工业大学 | 一种oct指尖数据的实时处理与三维可视化方法 |
CN109767468A (zh) * | 2019-01-16 | 2019-05-17 | 上海长征医院 | 脏器体积检测方法及装置 |
CN113347407A (zh) * | 2021-05-21 | 2021-09-03 | 华中科技大学 | 一种基于裸眼3d医学图像显示*** |
Also Published As
Publication number | Publication date |
---|---|
CN103106685B (zh) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103106685B (zh) | 一种基于gpu的腹部脏器三维可视化方法 | |
CN101110124B (zh) | 利用虚拟切割的背景中体积可视化的***及方法 | |
CN107590809A (zh) | 肺分割方法及医学成像*** | |
CN104574263A (zh) | 一种基于gpu的快速三维超声重建和显示方法 | |
CN101710420B (zh) | 一种医学图像反分割方法 | |
WO2017020580A1 (zh) | 一种医学组织的切片图像三维重建的方法及设备 | |
CN107924580A (zh) | 在医学成像中的表面体积混合模块的可视化 | |
CN101814193A (zh) | 基于gpu加速的实时三维心脏数据体绘制方法 | |
CN102930602A (zh) | 一种基于断层图像的面皮三维表面模型重建方法 | |
CN101324962A (zh) | 一种预投影光线投射体绘制的并行处理方法 | |
CN102074039A (zh) | 一种体绘制裁剪面绘制方法 | |
CN101593357B (zh) | 一种基于三维平面控件的交互式体切割方法 | |
CN101947103A (zh) | 全光学生物发光断层成像方法 | |
CN110993067A (zh) | 医学影像标注*** | |
Kumar et al. | 3D reconstruction of face from 2D CT scan images | |
CN108510580A (zh) | 一种椎骨ct图像三维可视化方法 | |
Wilson et al. | Interactive multi-volume visualization | |
CN103745495A (zh) | 基于医学体数据的体绘制方法 | |
CN103678847A (zh) | 皮肤软组织扩张辅助*** | |
Meike et al. | Real-time resampling of medical images based on deformed tetrahedral structures for needle insertion vr-simulation | |
Wang et al. | Illustrative visualization of segmented human cardiac anatomy based on context-preserving model | |
Tan et al. | Design of 3D visualization system based on VTK utilizing marching cubes and ray casting algorithm | |
Noon | A volume rendering engine for desktops, laptops, mobile devices and immersive virtual reality systems using GPU-based volume raycasting | |
Tatarchuk et al. | Advanced interactive medical visualization on the GPU | |
CN105844687A (zh) | 用于处理医学影像的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |