APP下载

基于面绘制的多孔材料内部孔隙结构三维可视化研究

2020-08-19刘志东

现代计算机 2020年19期
关键词:等值三维重建绘制

刘志东

(四川城市职业学院教务部,成都 610010)

0 引言

多孔材料是一种新型工程材料,具有结构和功能的双重用途,由于具有良好的扩散性、导热性、渗流性等宏观物理性质,广泛的应用于众多领域和学科[1-2]。为了能够对多孔材料三维空间内的孔隙结构进行研究,观察多孔材料孔隙的内部结构,需要对三维空间内的孔隙结构进行三维可视化处理。现有的三维可视化绘制方法可以归纳为两种:面绘制和体绘制。对于体绘制而言,直接在三维空间内,利用不同目标的三维空间数据直接进行三维重建,获得三维立体结构,加上光照等参数实现三维显示,其过程中不会产生中间过程的点、线、面等中间元素。体绘制直接对三维空间数据进行计算,其数据运算量大,并且算法的复杂度较高,使得体绘制过程需要的系统资源较大,也从而导致体绘制需要的时间开销增加,在实际应用过程中很难实现实时交互。对于面绘制而言,主要对三维空间目标的表面进行绘制显示,其数据处理基础是序列二维图像数据,再结合二维图像数据之间的空间结构关系,还原三维空间结构。面绘制主要处理的是二维数据,重建过程计算量较小,时间开销小,使得重建速度快,更有利于实现实时交互。

由于面绘制相对于体绘制在资源需求、算法效率、交互效果等方面的优势,现在对于面绘制的研究也越来越多,但是对于多孔材料的三维可视化研究较少,特别是基于二维序列图像,利用三维空间内部数据信息,直接针对孔隙结构三维可视化的很少。本文在相关研究基础上,采用多孔材料CT 断层扫描序列图像,通过图像预处理获取二值图像,在二值序列图像标记的基础上,采用面绘制Marching Cubes 算法,利用Visual Studio 编程技术和OpenGL 图形接口技术,充分利用三维孔隙内部数据,针对孔隙结构实现了三维可视化,并利用编程技术实现了旋转、缩放等交互操作功能,清晰展示了多孔材料孔隙内部结构,为后续孔隙结构研究垫底了基础。

1 图像预处理

1.1 图像滤波

均值滤波是一种常见的滤波方法,主要利用图像的灰度信息,采用统计局部信息对图像进行噪声消除。均值滤波主要针对图像的椒盐噪声进行处理[3]。其定义如下:

其中:i,j 为待处理像素的行号和列号,i=0,1,…,H-1;j=0,1,…,W-1;W 表示图像宽度;H 表示图像高度;m,n 分别表示以i,j 为中心的滤波模板的宽和高,S(m,n)表示模板内所有点的灰度值的和,NK 表示模板内所有点的个数和,Ri,j表示以 i,j 为中心的模板内点的集合。

其算法实现过程如下:

循环 1:i 从 0 到 H-1

循环 2:j 从 0 到 W-1

D(i,j)=Sum/NK

终止2

终止1

1.2 自动阈值分割

图像分割是图像处理的重要环节,其主要目的是在复杂的图像信息中,将目标信息通过处理算法从不相干信息中分割出来,便于后续对目标区域进行相应处理。采用阈值的图像分割方法,具有算法简单、效率高等特点,该方法利用的主要是图像的灰度信息,是输入图像f 到输出图像g 的如下变换:

其中,T 为阈值,目标元素 g(i,j)=1,背景元素 g(i,j)=0。

阈值分割方法最核心的内容就是如何准确、快速的对分割阈值进行计算。本文采用了自动阈值迭代的方法计算阈值,算法流程如下[4];

a.遍历图像,通过比较所有像素灰度值,获得最大值Max 和最小值Min。

b.假设最佳阈值OptTh 为零,初始阈值InitTh=(Max+Min)/2

c.将OptTh 的值设置为InitTh 的值

d.将像素值高于InitTh 值的像素归于高像素区,像素值低于InitTh 值的像素归于低像素区

e.根据d 中划分的区域,分别计算两个区域中的像素值的平均值LowV 和HighV

f.计算LowV 和HighV 的平均值,将其作为新的初始阈值InitTh

g.比较InitTh 和OptTh 的值,如果两者相等,程序转到h;否则程序转到c,继续执行。

h.返回最佳阈值OptTh,迭代结束。

2 Marching Cube算法

为了更好地展示三维孔隙结构的标记效果,本文采用基于体素的移动立方体法Marching Cube 算法进行三维可视化。

Marching Cube 算法是三维可视化常用的算法,属于面绘制算法中的一种。面绘制算法实现的过程,其实就是等值面查找构建的过程,所谓等值面就是将在三维重建的数据场中与指定的数值相等的数据点寻找到,并将寻找到的数据点定义为一个或多个曲面。对于由一系列二维灰度图像组建的数据场而已,数据值就是图像的灰度级别。Marching Cube 算法实现过程中,Lorensen 构建了一个查找表,其长度为256。该查找表包含了一个空间立方体等值面分布的所有情况。对所有分别情况进行总结,可总结为15 中基本立方体构型。Lorensen 总结和构建的基本立方体依据的是空间立方体的旋转对称性和颠倒对称性。立方体等值面的计算过程,就是比较立方体顶点和设定的阈值大小的过程。根据比较的大小关系,通过查找表,可以得出立方体的边与等值点的关系。将有关联的等值点连接起来就构成了等值面[5-6]。三维空间数据和等值面的示意图如图1 和图2 所示。

图1 数据场示意图

图2 等值面示意图

Marching Cube 算法实现过程图3 所示。

图3 Marching Cube算法流程图

3 孔隙结构三维可视化

Marching Cube 算法仅仅完成了对三维重建模型的构建过程,完成了等值面和法向量的计算,而要形成真实感的三维画面,还必须结合适当的光照模式和实现工具。本研究三维重建采用OpenGL 图形用户接口实现。OpenGL 具有良好的编程接口,能够在不同的操作系统平台,不同的编程语言上实现三维可视化处理。OpenGL 提供了大量专业的图形程序处理API,具有丰富的图形处理功能,并且对于网络也是透明的,在众多领域具有广泛的应用。

本文基于Microsoft Visual Studio 2008 建立基于OpenGL 的图像处理编程环境,多孔材料的孔隙结构的三维可视化过程如下:

(1)导入多孔材料CT 序列图像。

(2)对序列图像采用批处理方式,进行图像滤波与二值化处理,获取二值化数据。

(3)依据Marching Cube 算法,对二值化的序列图像进行等值面计算,获取三维数据场的等值面信息。

(4)在OpenGL 中初始化光照模型、着色描述表等基础数据。

(5)在OnPaint 函数中对MC 算法处理的三维等值面数据进行绘图并显示。

三维可视化过程中应用到的OpenGL API 函数主要有 glShadeModel、glMatrixMode、glLightModelfv、glEn⁃able、glPushMatrix、glTranslatef、glRotatef、glScalef、glNor⁃mal3f 等。通过OpenGL 实现多孔材料孔隙结构数据的三维可视化,结合鼠标操作,实现缩放、旋转等功能,将多孔材料内部孔隙结构直观呈现出来,可以多视角的对内部孔隙结构特征进行观察。

4 实验结果

本文采用CT 扫描多孔材料得到的序列断层图像进行三维可视化研究,图像大小为256×256,层数为25层,其某一层的断层扫描图像如图4 所示。图4 中像素灰度值为0 的部分是多孔材料的孔隙。从图中可以看出,图像中存在大量的噪声,会对后续三维可视化产生干扰。根据本文的均值滤波和自动阈值分割算法获取的二值图像。二值图像如图5 所示,可以看出,采用本文的滤波和分割算法,很好的去除了图像中的噪声,为后续重建奠定了基础。

图4 原始图像

图5 滤波、分割后的二值图像

在图像分割基础上,直接对序列图像进行三维重建,其重建结果如图6 所示。从图6 可以看出,虽然可以完成多孔材料的三维重建可视化,但是对于各个孔隙的内部结构、连通性等特征无法直接进行可视化观察,不利于后续对各个孔隙具体特征的研究。本研究提出了基于孔隙结构三维重建可视化的方法,其三维重建结果如图7 所示。通过图6 和图7 中重建结果的对比,可以看出,直接对孔隙进行三维重建可以对孔隙结构特征进行直观的研究。图8 是将图7 旋转180 度后呈现的重建情况。通过图像的旋转、缩放等交互功能,实现了对多孔材料孔隙三维结构特征的360 度全方位、多细节的三维可视化查看。本文提出的三维可视化方法,对于研究多孔材料内部孔隙的形状、连通性、分布情况的结构特征具有重要的应用意义。

图6 直接三维重建结果

图7 基于孔隙的三维重建结果

图8 水平旋转180°后的三维重建结果

5 结语

本文采用OpenGL 技术,利用MC 算法对滤波、分割后的多孔材料的CT 序列扫描图像进行了三维孔隙内部结构可视化研究。根据实验结果显示,采用本文研究方法,可以有效地对三维多孔材料孔隙内部结构进行三维可视化,实现了旋转、缩放等交互功能,多视角、细节化的观察多孔材料内部的孔隙结构,为计算三维孔隙结构参数计算提供了可能。虽然本文算法可以有效的对多孔材料进行三维可视化,但是并未对每一个独立孔隙进行单独标记,无法识别每一个独立的孔隙,后续将重点开展对三维孔隙标记的研究。

猜你喜欢

等值三维重建绘制
Art on coffee cups
异步电动机等值负载研究
基于Mimics的CT三维重建应用分析
放学后
基于关系图的无人机影像三维重建
三维重建结合3D打印技术在腔镜甲状腺手术中的临床应用
电网单点等值下等效谐波参数计算
多排螺旋CT三维重建在颌面部美容中的应用
基于戴维南等值模型的静稳极限在线监视
在转变中绘制新蓝图