一种基于ct图片的三维岩心可视化方法

文档序号:6547483阅读:281来源:国知局
一种基于ct图片的三维岩心可视化方法
【专利摘要】本发明公开了一种基于CT图片的三维岩心可视化方法,其构建步骤分为:图像获取、灰度变换、亮度处理、对比度拉伸、二值化和三维可视化。本发明实现了基于CT图片的三维岩心可视化,能够直观观察孔隙形态与分布、岩石类型、微观构造等岩心地质信息。与传统的获取铸体薄片、并在三维岩心实体上直接做剖面分析相比,本发明可以在不改变岩心形态及内部结构的条件下,观察岩心的裂缝和孔隙分布状况,节省了大量建模的时间和经济成本,提高了工作效率,使研究人员能更加直观、方便的对岩心进行各种岩心模拟实验与分析。
【专利说明】—种基于CT图片的三维岩心可视化方法
【技术领域】
[0001]本发明涉及一种三维岩心可视化方法,尤其涉及一种基于CT图片的三维岩心可视化方法。
【背景技术】
[0002]岩心是最直观、最可靠地反映地下地质特征的第一手资料。研究人员通过岩心分析手段,能深入地研究所钻遇地层的岩性、物性、电性和含油气性等岩石特性,查明开发过程中所需的资料,检查开发效果,为增产措施提供地质依据。自上世纪八十年代以来,随着计算机断层扫描(CT)技术的出现和逐渐发展成熟,在不损毁岩心的前提下,可以通过CT技术获取二维岩心断层序列图像来观察和分析岩心。随着分析水平的提高,人们希望能更直观有效地观察、分析岩心三维微观孔隙结构,并在此基础上研究二维岩心图像不能反映的特性,如三维孔隙度、连通性、渗透率等。在这样的背景下,对三维岩心的数字化重建与可视化成了新的研究热点。
[0003]三维岩心可视化是岩心微观分析的重要组成部分。在三维基础上的岩心重建可以为后续的岩性分析提供直观的可视化支持,必须保证重建后的三维结构与二维图像或薄片具有相同或相近的统计特性。同时,油气田开发中含油岩心及其扫描图像经常被用作地质评价的依据,其获取也较为方便。因此,以微观岩石断层扫描图像作为数据资料进行三维岩心重建成为可能。
[0004]当前,三维可视化主要是通过将一系列岩心二维断层序列图像以合适的三维可视化算法可以还原出一个真三维岩心实体,并将该实体在计算机二维屏幕中显示出来,以方便用户的浏览和交互操作。一般情况下,地学研究人员一般通过观察大量岩心二维断层序列图像,并根据过往研究经验在头脑中还原出三维虚拟岩心,以便进行各种参数的分析计算。然而这种方法过于依赖人们的主观经验和研究水平,缺乏三维环境下的实际观测,存在着一定的局限性和不确定性。
[0005]在三维可视化领域,三维体绘制技术是一大类三维显示算法的统称,主要包括间接体绘制和直接体绘制两大类。
[0006]间接体绘制也称面绘制(surface rendering)、等值面绘制等,它是三维可视化算法中较常见的一大类算法。该算法首先对三维重建后的规则体数据进行预处理,生成便于计算机图形硬件处理的新的数据结构。通常是对体数据表面进行分割重组,通过几何单元内插形成物体轮廓表面,即等值面。然后结合光照、纹理映射等图形学算法来显示有真实感的图像画面,重点突出外观信息。
[0007]直接体绘制也即体绘制,与间接体绘制相比,直接体绘制不仅能够反映出物体外部表面形态方面特征,而且更能表现物体内部有效信息,尤其在探究物体内部微观结构特性等方面具备独特优势。这是传统计算机图形图像绘制技术无法做到的。因此,直接体绘制的应用越来越广泛,受到研究人员的普遍青睐。
[0008]光线投射算法是直接体绘制大类中最经典的一种算法,该算法的基本目标是:在不借助构建任何中间结构体的基础上更好的利用三维阵列体数据,从而实现更真实、透明的三维显示效果。该算法常用于基于图像序列的三维可视化,在医学领域应用最为广泛,尚未应用于岩心的三维可视化,将其应用于三维岩心可视化时还存在以下几个问题:
[0009]1、图像质量差:由于光线投射算法在将图像映射为三维体数据后,不做任何构建中间体元的操作,因此,光线投射算法只是在三维条件下以透视的形式将图像重建并展示在屏幕中。当图像出现模糊、偏亮或偏暗等质量问题时,算化实现效果也随之受影响。
[0010]2、体数据冗余:岩心二维断层序列图像数量较多,在构建三维数据场的过程中,采样得到的体数据量庞大,且存在若干相邻图像间差异很小或几乎无差异的情况,常规算法将所有图像都用于数据体的三维重建,会产生大量的数据冗余。
[0011]3、不透明度计算冗余:一般情况下,光线投射算法是以三维体数据场作为一个整体进行图像合成计算的。一条射线上多个重采样点经过三线性插值计算得到的不透明度值已经为1,即表明该点不透明。此时,对沿这条射线方向上剩余重采样点所做的插值计算就是多余的,在一定程度上会影响算法的运行效率。

【发明内容】

[0012]为了解决上述技术所存在的不足之处,本发明提供了一种基于CT图片的三维岩心可视化方法。
[0013]为了解决以上技术问题,本发明采用的技术方案是:一种基于CT图片的三维岩心可视化方法,其实现步骤如下:
[0014]a、图像获取
[0015]要获得清晰可靠的CT序列图像,保证可视化效果,岩心样品直径的选取不超过I厘米,CT扫描间隔不超过100 μ m,图像分辨率优于100 μ m ;
[0016]b、灰度变换
[0017]通过CT扫描获取的岩心断层序列图像一般是灰度图像;若是彩色图像,需先进行灰度变换;
[0018]C、亮度处理
[0019]将图像中每个像素点的灰度值同时乘以一个常数值;具体的调整方法包括三种情形:设常数值为N,当N = I时,图像保持原来的亮度不变;当N小于I时,图像亮度减少,图像变暗;当N大于I时,图像亮度增加,图像变亮;
[0020]d、对比度拉伸
[0021]通过调整对比度,使岩心图像中的孔隙和骨架两部分能清晰可见,这是后续工作的基础;
[0022]e、二值化
[0023]岩心两大核心组成部分是岩石骨架和孔隙,若将两大组成部分理想的反映在岩心图像中,就必须对图像进行二值化处理;二值化处理采用迭代阈值法;
[0024]f、三维可视化
[0025]为了使三维可视化的结果不仅反映出物体外部表面形态方面特征,更能表现物体内部有效信息,尤其能探究物体内部微观结构,可视化绘制算法采用直接体绘制中的光线投射算法;[0026]光线投射算法构建的三维阵列的每个体素均可视为发射、透射和反射光线的粒子,算法的实质是通过构建一个物理视觉模型,在光照模型中获取颜色和半透明度等属性值,并通过重采样和借助某种合成算法来将计算后的颜色值投射到二维屏幕图像中,形成具有半透明效果的实体显示;
[0027]在构建体数据时,为了改进体数据的冗余问题,在不影响可视化效果的条件下,重设数据采样距离是一种很好的解决办法。通过这种方法可以等间距的滤除掉重复性较高的数据,大大减少了重采样和图像合成计算所需数据量,从而提高了算法的效率;
[0028]采样点赋颜色值和不透明度值是算法的重要内容;除了每个体素点赋颜色值和不透明度值外,还需对光 线穿透过的射线按照等间距原则做重采样,并对每个等间距采样点进行颜色值和不透明度值的计算;
[0029]透明度是衡量光线穿透物体能力大小的指标,不透明度值一般用α来表示,当α=I时,表示该体素点完全不透明,α = O则表示该体素完全透明,当O < α < I时,该体素点为半透明状态;对体素点赋不透明度值一般根据光线吸收与发射模型,由外部表面到内部区域递增赋值;对体素点赋不透明度值可以增强体绘制的细节显示效果,更好的展现岩心的内部结构信息;
[0030]对体素点赋颜色值和不透明度值后,需要计算射线穿过的每个采样点颜色值和不透明度值;采样点位于8个体素点所确定的立方体空间区域内部,因此计算采样点的颜色值就根据它周围8个体素点的颜色值来确定;根据线性插值原理,插值系数为线上插值点与线上两端点的距离之比,而插值点值与线上两端点值的绝对差值与插值系数成反比;处在线上的点通过一次插值计算求值,面上的点则要两次插值计算,处于体空间中的点需要做三线性插值计算求得颜色值和不透明度值;在不透明度计算时,会出现不透明度计算冗余的问题。通过设定不透明度截止的阈值法来实现,由于不透明度接近I时,后续所做的重采样和合成计算意义不大,对体绘制的效果几乎没有影响。因此可以设置一个接近I的不透明度值作为提前截止的阈值,当不透明度达到这个值时,计算自动终止;
[0031]根据计算好的采样点的颜色值和不透明度,通过光线投射算法中的合成算法在屏幕图像中合成像素点的最终颜色值,即可在屏幕上合成最终的结果图像,这是算法中的最后一步;图像合成算法采用由后向前的图像合成法,由后向前的图像合成算法是沿光线射线由后向前的方向将各采样点的颜色值和不透明度值合成起来,以得到最终图像;设第i个采样点的颜色值为Cntw,不透明度值为,设光线通过的第i个采样点前的合成颜色值为Cin,合成不透明度为^111,经过1采样点合成后颜色值为(:_,不透明度值为则合成公式为:
[0032]Cout = Cin (1-a now) +Cnow a now
[0033]同理,由前向后的图像合成法是沿射线方向将所有采样点的颜色值和不透明度值从前向后累加合成处理,根据上面的设定,合成公式为:
[0034]Cout a out = Cin a in+Cnow a now (1- a J
[0035]依据上述公式,即可将所有采样点的颜色值和不透明度值依次累加起来,合成最终的颜色值。
[0036]本发明实现了基于CT图片的三维岩心可视化,能够直观观察孔隙形态与分布、岩石类型、微观构造等岩心地质信息。与传统的获取铸体薄片、并在三维岩心实体上直接做剖面分析相比,本发明可以在不改变岩心形态及内部结构的条件下,观察岩心的裂缝和孔隙分布状况,节省了大量建模的时间和经济成本,提高了工作效率,使研究人员能更加直观、方便的对岩心进行各种岩心模拟实验与分析。
【专利附图】

【附图说明】
[0037]图1为本发明的流程框图。
[0038]图2为本发明采用迭代阈值法获取阈值的流程框图。
[0039]图3为本发明的光线投射算法的三线性插值示意图。
[0040]图4为本发明的光线投射算法流程图。
[0041]图5为本发明即采用改进后的光线投射算法绘制的三维岩心正面显示效果图。
[0042]图6为图4的侧面显示效果图。
[0043]图7为常规的光线投射算法绘制的三维岩心正面显示效果图。
[0044]图8为图7的侧面显示效果图。
[0045]图中:1、眼镜;2、采样点;3、三线性插值。
【具体实施方式】
[0046]下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0047]1、图像获取
[0048]当前,二维序列图像数据获取的方法主要是X射线CT断层扫描法,它是通过岩心CT实验由台式CT机完成岩心图像的扫描与制作;当X射线穿过岩心样品时,X射线会发生一定程度的衰减,满足X射线衰减公式;该公式如下:
[0049]I = 10e_Eux (I)
[0050]其中,10表示X射线的初始强度值,I表示X射线衰减后的强度值,μ表示X射线的衰减系数;X表示在X射线当前路径上的长度;断层扫描(CT)的成像原理也正是基于此建立的;
[0051]通过岩心CT实验扫描获取的图像,并非可视化所需的二维岩心序列图像,还需进行数字图像重建,它的实质是按照采集后的数据顺序,求解图像矩阵中像素,再重新构建图像的过程;
[0052]为保证图像能清晰反应岩心微观结构特征,实验所选岩心尺寸要足够小;主要有两个原因:一方面由于岩心致密程度较高,如果选取的尺寸较大,则X光线很难完全穿透岩心,导致岩心部分区域会因照射不到而完全屏蔽,从而影响实验结果;另一方面如果岩心尺寸过大,图像中每个像素所对应的实际岩心尺寸也相应增大,即图像的实际分辨率降低,扫描出的岩心图片很可能不清晰。因此,要获得清晰可靠的CT序列图像,保证可视化效果,建议岩心样品直径的选取不超过I厘米,CT扫描间隔不超过100 μ m,图像分辨率优于100 μ m。
[0053]获取实验岩心分辨率为10 μ m的若干张496 X 496的BMP格式图像;
[0054]2、灰度变换
[0055]常规情况下,通过CT扫描获取的岩心断层序列图像是灰度图像;假若是彩色的,需要先转换成灰度图像;在RGB模式下,彩色图像中每个像素的颜色值均由红绿蓝三原色表示,一般情况下,每个像素由24位数据表示,RGB三原色各占8位;而对于灰度图像,每个像素均由8位数据表示;对于每个像素来说,将彩色图像转换成灰度图像采用如下公式:
[0056]Gray = 0.30R+0.59G+0.1lB(2)
[0057]其中,Gray表示转换后的图像灰度值,R、G、B分别表示原彩色图像的红、绿和蓝三种颜色的分量值;
[0058]3、亮度处理
[0059]如果出现图像过亮或过暗的情况,需要对图像进行亮度调整处理。亮度调整的处理方法是:将图像中每个像素点的灰度值同时乘以一个常数值;具体的调整方法包括三种情形:设常数值为N,当N = I时,图像保持原来的亮度不变;当N小于I时,图像亮度减少,图像变暗;当N大于I时,图像亮度增加,图像变亮;因此,调整图像亮度时,常数值N非常重要,它决定了整幅图像的明暗程度;
[0060]此外,进行亮度调整处理时还需要检验处理后的每个灰度值是否处在[0,255]这个区间内,如发生越界则取边界值255,如果所得到的值非整数,则通过四舍五入法取整数值;
[0061]4、对比度拉伸
[0062]对比度值实际上就是颜色分量之间的差值,调整对比度就是对每个像素的最大值和最小值进行处理;由于岩心内部结构主要包括骨架和孔隙两大部分,如果岩心图像不清晰,会导致骨架和孔隙之间的区分不明显,对后续可视化工作造成严重影响;因此,通过调整对比度,使岩心图像中的孔隙和骨架两部分能清晰可见,这是后续工作的基础;
[0063]增加对比度就是将像素值以一致的方式增加,使最大值和最小值之间的差值不断增大;一般方法如下:
[0064]首先设定一个阈值n,n的取值范围为(0,128),η值根据实际应用需要或是图像分割算法设定;设原图像的的像素值为f,增加对比度后的像素值为g ;则满足下列公式:
[0065]当f〈n 时,g = O ;
[0066]当f>255 - η 时,g = 255 ;
[0067]当η≤ f ≤ 255 -η 时,g = (f-n) X255/(255-2Xn)(3)
[0068]以上过程等同于把图像中所有处于[n,255-n]区间的像素值,调整到[0,255]区间上;
[0069]5、二值化
[0070]岩心两大核心组成部分是岩石骨架和孔隙,若将两大组成部分理想的反映在岩心图像中,就必须对图像进行二值化处理,以便有效地进行岩心近似孔隙度计算;
[0071]图像二值化也称图像分割,主要有三种方法:一是区域分割法;二是阈值分割法;三是边缘检测分割法;在图像分割技术中,最常用的是阈值分割法;根据岩心图像的特点,本发明选用阈值分割法更合适;阈值分割法的关键在于分割阈值的选取,分割阈值的基本功能是将图像两大核心部分划分出来,以便更好地显示。倘若阈值的选取不合理,将会造成二值化结果图像与原图像不符,影响可视化显示和分析效果;
[0072]灰度图像二值化分割阈值的计算方法较多,常见的有平均阈值法、迭代阈值法、最大类间距法、最小误差法、指示克里金法等等。对于一幅简单灰度图像而言,一般近似选取最大灰度值和最小灰度值的平均值作为图像的分割阈值,称为平均阈值法。虽然该阈值选取方法简单易操作,但分割误差较大。迭代阈值法是对平均阈值法的一种改进和完善,它是通过迭代程序自动算出比较合适的分割阈值。岩心二维断层序列图像是比较简单的灰度图像,且图对比度较强,考虑到分割误差不能过大,故采用迭代阈值法。迭代阈值法的算法实现如下:
[0073]I)选择一个近似阈值T,T是根据图像的平均灰度值η来确定的初始值。
[0074]2)通过阈值Τ,将图像分割成两部分Fl和F2,分别用同样的方法确定区域Fl和F2的均值nl、n2。
[0075]3)选择新的分割阈值Τ。令T = (nl+n2)/2。重复上述步骤直到nl和n2都不再发生变化为止。这样得到的值即为图像分割的最终阈值T。
[0076]采用迭代阈值法获取阈值的流程图,如图1所示。
[0077]获取灰度图像二值化的分割阈值后,即对该岩心二维图像做二值化处理,岩心图像二值化处理方法如下:假设图像的分割阈值为T,F(i,j)表示图像像素(i,j)的灰度值,g(i, j)表示图像处理后的像素值。当F(i, j)≥T时,g(i, j) = 255,当F(i,」)〈1'时4(;[,j)=O。
[0078]6、三维可视化
[0079]6.1三维可视化算法原理及步骤 [0080]为了使三维可视化的结果不仅反映出物体外部表面形态方面特征,更能表现物体内部的有效信息,尤其能探究物体内部微观结构,一般可视化绘制算法采用直接体绘制中的光线投射算法。
[0081]光线投射(Ray Casting)算法是直接体绘制大类中最经典的一种算法,它是由Marc Levoy于1987年提出的一种体绘制算法,并在科学计算可视化领域中迅速发展。
[0082]光线投射算法的基本原理是:构建一个三维空间体数据场,根据体数据的属性要求对体数据中的每个点数据(也称体元或体素)均赋予一个颜色值和不透明度值。从屏幕图像的每个像素点出发,沿视线方向发射一条光线穿过整个三维体数据场,沿射线方向等间距进行若干重采样,根据与采样点最近的8个体素的颜色值及不透明度值对重采样点做三次线性插值,求出采样点的颜色值及不透明度。按照从前向后或从后向前的方向对所有采样点颜色值和不透明度值进行光线投射算法的合成计算,直到光线被近似完全吸收或穿过物体表面。对所有像素点进行上述计算过程后,就得到光线投射算法的结果图像。
[0083]光线投射算法构建的三维阵列的每个体素均可视为发射、透射和反射光线的粒子,算法的实质是通过构建一个物理视觉模型,在光照模型中获取颜色和半透明度等属性值,并通过重采样和借助某种合成算法来将计算后的颜色值投射到二维屏幕图像中,形成具有半透明效果的实体显示。
[0084]在构建体数据时,为了改进体数据的冗余问题,在不影响可视化效果的条件下,重设数据采样距离是一种很好的解决办法。通过这种方法可以等间距的滤除掉重复性较高的数据,大大减少了重采样和图像合成计算所需数据量,从而提高了算法的效率。
[0085]采样点赋颜色值和不透明度值是算法的重要内容;除了每个体素点赋颜色值和不透明度值外,还需对光线穿透过的射线按照等间距原则做重采样,并对每个等间距采样点进行颜色值和不透明度值的计算。透明度是衡量光线穿透物体能力大小的指标,不透明度值一般用α来表示,当α = I时,表示该体素点完全不透明,α = O则表示该体素完全透明,当0< α < I时,该体素点为半透明状态;对体素点赋不透明度值一般根据光线吸收与发射模型,由外部表面到内部区域递增赋值;对体素点赋不透明度值可以增强体绘制的细节显示效果,更好的展现岩心的内部结构信息。
[0086]对体素点赋颜色值和不透明度值后,需要计算射线穿过的每个采样点颜色值和不透明度值;采样点位于8个体素点所确定的立方体空间区域内部,因此计算采样点的颜色值就根据它周围8个体素点的颜色值来确定;根据线性插值原理,插值系数为线上插值点与线上两端点的距离之比,而插值点值与线上两端点值的绝对差值与插值系数成反比;处在线上的点通过一次插值计算求值,面上的点则要两次插值计算,处于体空间中的点需要做三线性插值计算求得颜色值和不透明度值;在不透明度计算时,会出现不透明度计算冗余的问题。通过设定不透明度截止的阈值法来实现,由于不透明度接近I时,后续所做的重采样和合成计算意义不大,对体绘制的效果几乎没有影响。因此可以设置一个接近I的不透明度值作为提前截止的阈值,当不透明度达到这个值时,计算自动终止。
[0087]根据计算好的采样点的颜色值和不透明度,通过光线投射算法中的合成算法在屏幕图像中合成像素点的最终颜色值,即可在屏幕上合成最终的结果图像,这是算法中的最后一步;图像合成算法采用由后向前的图像合成法,由后向前的图像合成算法是沿光线射线由后向前的方向将各采样点的颜色值和不透明度值合成起来,以得到最终图像;设第i个采样点的颜色值为Cntw,不透明度值为,设光线通过的第i个采样点前的合成颜色值为Cin,合成不透明度为^111,经过1采样点合成后颜色值为(:_,不透明度值为则合成公式为:
[0088]Cout = Cin (1- a now) +Cnow a now
[0089]同理,由前向后的图像合成法是沿射线方向将所有采样点的颜色值和不透明度值从前向后累加合成处理,根据上面的设定,合成公式为:
[0090]Cout aout = Cina in+Cnow anow(l-a J
[0091]依据上述公式,即可将所有采样点的颜色值和不透明度值依次累加起来,合成最终的颜色值。
[0092]6.2技术流程
[0093]VTK(visualizationToolkit),是一个建立在OpenGL之上的可视化图形图像开发工具包,最核心的组成部分是VTK类库,该类库对光线投射算法的封装主要通过合成体绘制函数VtkVolumeRayCast CompositeFunction类实现,通过该函数比较方便地实现光线投射算法的合成绘制。同时,VTK的体绘制过程中也调用了三个重要的传递函数,即颜色值传递函数(vtkColorTransferFunction)、不透明度传递函数(vtkPiecewiseFunction)和梯度传递函数(vtkPiecewiseFunction)。上述函数的主要功能是通过它们设定合适的绘制参数,来灵活调整算法绘制的效果,以满足光线投射算法的三维可视化效果要求。主要技术流程如下:
[0094]I)图像数据导入。将 处理过的BMP格式岩心断层序列图像加载,由VtkBMPReader类进行对象实例化,如果图像格式为JPEG或DIC0M,则分别调用VtkJPEGReader或WtkDICOMImageReader来实现图像读取。在实现图像读取后,对读入的数据设置字符读取模式、文件读取路径、显示图像的维数、体数据(即像素)间距和基准点等。
[0095]2)数据采样距离设置
[0096]在不影响可视化效果的条件下,重设数据采样距离是一种很好的解决办法。通过这种方法可以等间距的滤除掉重复性较高的数据,大大减少了重采样和图像合成计算所需数据量,从而提高了算法的效率。在VTK中,调用vtkVoIumeRayCastMapper类的函数SetAutoAdjustSampleDistances (3)来设置自适应模型间距,它表示从每相邻的三张二维图像中抽取一张用来构建三维体数据。此时,用于重建的图像数量就缩减为原来的三分之一,整个数据体并没有改变。
[0097]3)数据类型转换。在VTK程序中有专门负责数据类型转换的类,该类能在岩心图像预处理的基础上对读取数据做更进一步的转换处理,使可视化能达到更好的效果,通过数据类型匹配类VtkImageCast实现。
[0098]4)赋颜色值。设置颜色传递函数,确定像素的颜色值或灰度值。
[0099]5)赋不透明度值。设置不透明度传递函数,确定像素或单位长度的不透明度值。通过设定不透明度截止的阈值法来实现提前截止不透明度,由于不透明度接近I时,后续所做的重采样和合成计算意义不大,对体绘制的效果几乎没有影响。因此可以设置一个接近I的不透明度值作为提前截止的阈值,当不透明度达到这个值时,计算自动终止。在 VTK 程序中,调用 vtkPiecewiseFunction 类的函数 opacitytransferFunction.AddPoint (1000, 0.95)和 opacitytransferFunction.ClampingOff O 来实现不透明度提前截止操作。
[0100]6)赋梯度值。设置梯度传递函数,确定体绘像素的梯度值。
[0101]7)设置体属性。相关体属性的设置是通过体绘制容器对象来实现,在容器中设置颜色值(SetColor)、不透明度值(SetScalarOpacity)、梯度值(SetGradientOpacity)、直线与样条插值之间逐发函数(SetlnterpolationTypeToLinear)、环境光系数(SetAmbient)、漫反射(SetDiffuse)、高光系数(SetSpecular)、高光强度(SetSpecularPower)和阴影(ShadeOn)等。
[0102]8)图像合成与绘制。通过映射器vtkVolumeRayCastMapper类载入光线投射的合成算法函数将体数据映射为屏幕图像,然后调用vtkVolumeRayCastCompositeFunctioη函数进行体绘制中所有采样点的合成运算实现合成绘制方法的载入,由vtkVolume类设置一个三维体数据,加载图像映射器(SetMapper)和体属性(volumeProperty),即根据类vtkVoIumeProperty 设置的映身寸(vtkPiece-wiseFunction, vtkColorTransferFunction,vtkPiecewiseFunction)将多个采样点值合成一个屏幕像素点颜色值输出。此外,颜色值合成前还可以通过类VtkCamera弓丨入光照模型,再通过渲染类vtkRenderer进行图像渲染,在窗口(renWin)中输出显示。
[0103]本发明优于常规的光线投射算法的证据,根据实验结果所得到的图5、图6与图7-图的对比可以看出,本发明的三维岩心外观轮廓效果较好。另外,从绘制时间、绘制速度方面将进行分析比较,也可证明本发明的优越性,结果如下表所示。
[0104]两种三维岩心可视化算法的性能比较
[0105]
【权利要求】
1.一种基于CT图片的三维岩心可视化方法,其特征在于:其实现步骤如下: a、图像获取 要获得清晰可靠的CT序列图像,保证可视化效果,岩心样品直径的选取不超过I厘米,CT扫描间隔不超过100 μ m,图像分辨率优于100 μ m ; b、灰度变换 通过CT扫描获取的岩心断层序列图像一般是灰度图像;若是彩色图像,需先进行灰度变换; C、亮度处理 将图像中每个像素点的灰度值同时乘以一个常数值;具体的调整方法包括三种情形:设常数值为N,当N = I时,图像保持原来的亮度不变;当N小于I时,图像亮度减少,图像变暗;当N大于I时,图像亮度增加,图像变亮; d、对比度拉伸 通过调整对比度,使岩心图像中的孔隙和骨架两部分能清晰可见,这是后续工作的基础; e、二值化 岩心两大核心组成部分是岩石骨架和孔隙,若将两大组成部分理想的反映在岩心图像中,就必须对图像进行二值化处理;二值化处理采用迭代阈值法; f、三维可视化 为了使三维可视化的结果不仅反映出物体外部表面形态方面特征,更能表现物体内部有效信息,尤其能探究物体内部微观结构,可视化绘制算法采用直接体绘制中的光线投射算法; 光线投射算法构建的三维阵列的每个体素均可视为发射、透射和反射光线的粒子,算法的实质是通过构建一个物理视觉模型,在光照模型中获取颜色和半透明度等属性值,并通过重采样和借助某种合成算法来将计算后的颜色值投射到二维屏幕图像中,形成具有半透明效果的实体显示; 在构建体数据时,为了改进体数据的冗余问题,在不影响可视化效果的条件下,重设数据采样距离是一种很好的解决办法。通过这种方法可以等间距的滤除掉重复性较高的数据,大大减少了重采样和图像合成计算所需数据量,从而提高了算法的效率; 采样点赋颜色值和不 透明度值是算法的重要内容;除了每个体素点赋颜色值和不透明度值外,还需对光线穿透过的射线按照等间距原则做重采样,并对每个等间距采样点进行颜色值和不透明度值的计算; 透明度是衡量光线穿透物体能力大小的指标,不透明度值一般用α来表示,当α = I时,表示该体素点完全不透明,α = O则表示该体素完全透明,当O < α < I时,该体素点为半透明状态;对体素点赋不透明度值一般根据光线吸收与发射模型,由外部表面到内部区域递增赋值;对体素点赋不透明度值可以增强体绘制的细节显示效果,更好的展现岩心的内部结构信息; 对体素点赋颜色值和不透明度值后,需要计算射线穿过的每个采样点颜色值和不透明度值;采样点位于8个体素点所确定的立方体空间区域内部,因此计算采样点的颜色值就根据它周围8个体素点的颜色值来确定;根据线性插值原理,插值系数为线上插值点与线上两端点的距离之比,而插值点值与线上两端点值的绝对差值与插值系数成反比;处在线上的点通过一次插值计算求值,面上的点则要两次插值计算,处于体空间中的点需要做三线性插值计算求得颜色值和不透明度值;在不透明度计算时,会出现不透明度计算冗余的问题。通过设定不透明度截止的阈值法来实现,由于不透明度接近I时,后续所做的重采样和合成计算意义不大,对体绘制的效果几乎没有影响。因此可以设置一个接近I的不透明度值作为提前截止的阈值,当不透明度达到这个值时,计算自动终止; 根据计算好的采样点的颜色值和不透明度,通过光线投射算法中的合成算法在屏幕图像中合成像素点的最终颜色值,即可在屏幕上合成最终的结果图像,这是算法中的最后一步;图像合成算法采用由后向前的图像合成法,由后向前的图像合成算法是沿光线射线由后向前的方向将各采样点的颜色值和不透明度值合成起来,以得到最终图像;设第i个采样点的颜色值为Cn?,不透明度值为CInmt,设光线通过的第i个采样点前的合成颜色值为Cin,合成不透明度为^?,经过1采样点合成后颜色值为(:_,不透明度值为α-,则合成公式为:
?out ^in (I Q now) +^now ^ now 同理,由前向后的图像合成法是沿射线方向将所有采样点的颜色值和不透明度值从前向后累加合成处理,根据上面的设定,合成公式为:
C0Ut α out = Cin a in+Cnow a now (1- a in) 依据上述公式,即可将所有采样点的颜色值和不透明度值依次累加起来,合成最终的颜色值。
【文档编号】G06T17/00GK103971410SQ201410221875
【公开日】2014年8月6日 申请日期:2014年5月23日 优先权日:2014年5月23日
【发明者】刘善伟, 万剑华, 刘馨泽, 卜雪娜, 曾喆, 王强, 田俊林 申请人:中国石油大学(华东)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1