APP下载

基于CT数据的医学图像处理系统设计

2019-10-11张玉芳关天民刘光孟郭艳利张玉芬

中国医学物理学杂志 2019年9期
关键词:参数设置三维重建绘制

张玉芳,关天民,刘光孟,郭艳利,张玉芬

1.大连交通大学机械工程学院,辽宁大连116028;2.鹤壁市人民医院,河南鹤壁458030

前言

近年来,随着计算机医学成像技术的迅猛发展,人们可以快速获取高质量的医学序列图像数据。通过图像数据的分割和重建,为医学诊断和生物医学工程等学科研究提供重要的科学依据。医学图像分割技术是医学图像处理中至关重要的一环,模型的准确性对医生诊断和后续相关处理研究至关重要。由于医学图像的复杂性,其所采用的分割原理和分割方法不同,故分割技术对医学图像的处理不具有通用性,这也是医学图像处理的难点。医学图像三维重建技术即从二维序列图像中获取三维的结构信息并显示立体模型,为用户呈现出直观的效果。由于医学数据的三维模型构造涉及学科间交叉,需要一款快速、简便的模型构造操作平台以降低操作难度,提高工作效率。

1 CT图像的读取与预处理

CT 图像不同于常规的图像形式,主要应用于医学诊治领域,不仅能够展示图形信息,同时也包含了患者信息、诊断情况等大量非图形信息。

Visualization Toolkit(VTK)是一个开源软件包,主要应用于三维计算机图形学、图像处理和可视化等领域,它是以三维函数库OpenGL为基础采用面向对象的设计方法发展起来的,具有跨平台的特征[1-3]。VTK是专注于可视化的开源平台,自带Reader识别各种图片格式,其中vtkDICOMImageReader类支持对DICOM格式图像的直接读取,通过vtkImageViewer2达到模型可视化[4]。

为突显医学图像的目标区域,需对图像进行去除冗余信息等预处理。常用的处理手段有平滑滤波、图像增强处理等,针对DICOM医学图像,采用窗技术即调窗处理,突出分割目标组织。CT可识别2 000多个灰阶密度,远高于人眼可识别的16个灰阶度,根据这一特性,可将组织密度分为16个灰阶,以达到最佳显示效果。窗宽的选取,对CT图像的显示效果也产生较大的影响。增大窗宽,则图像CT 值范围增大,组织结构增多,但各结构间灰度差别减少;减少窗宽,则组织结构减少,各结构间灰度差别增大。图1为不同窗宽下的图像可视化效果图。

图1 不同窗宽下的图像可视化效果图Fig.1 Image visualization under different window widths

2 CT序列图像分割

图像分割包括识别和描绘操作,其目的是将图像中具有特定信息和意义的不同区域区分开,使这些区域不交叉并且每个区域都能满足预设效果[5-7]。

2.1 图像阈值分割

阈值分割方法是通过不同阈值,将图像分割为若干类。灰度图像包括目标、背景和噪声的差异,设定某一个阈值T将图像分成两个部分:≥T的像素群和<T的像素群:

由于实际得到的图像目标和背景之间不单纯地分布在两个灰度范围内,此时需要设置多个阈值进行目标提取。

2.2 目标区域分割

本文主要研究对象是脊柱及其周边组织的分割,其中周边组织选取区域较大的肺部为例。结构分割采用Insight Segmentation and Registration Toolkit(ITK)进行图像处理。

2.2.1 结合阈值和区域生长方法的分割首先对分割图像进行调窗处理,快速定位目标范围和背景区域,并采用区域生长方法分割出目标区域。程序开始前,需要include 头文件,声明像素类型和图像维度,分割完成后需要将 itkImageData 转换成vtkImageData,进行可视化。为了节省系统内存,实现数据之间的共享,笔者使用了智能指针(itkPointer和vtkSmartPointer)来检测引用数值,当引用计数减少到零,会自动释放对应对象的资源。

由于ITK中没有实现可视化的功能,可视化需要在VTK中实现,所以在ITK进行分割的基础上,结合VTK对图像进行可视化处理[8]。

2.2.2 结合阈值和水平集方法的分割水平集分割的流程大致与区域生长分割方法类似,首先调用itkFastMarchingImageFilter 作为分割滤波器,然后选用Sigmoid函数作为梯度值函数,控制曲线演化。

Sigmoid 函数作为梯度值函数,提供了一种曲线演化参数控制方法。其行进方式为:图像梯度较高时演化过程放缓,梯度较低时演化加快。这样的行进策略使演化曲线轮廓在接近目标结构边缘时速率放缓,可更精确的完成分割。

分割过程中,使用itk Curvature Anisotropic Diffucsion ImageFilter 进行平滑,然后传入itkGradient Magnitude Recursive Gaussian Image Filter得到梯度图像,再由itkSigmoidImageFilter 得到梯度强度的Sigmoid 计算得到演化的速率系数,然后用itkFastMarchingImageFilter 水平集分割,最后通过二值化阈值itkBinaryThresholdImageFilter 生成一个binary mask得到分割图像。

实际上itkSigmoidImageFilter作为一个亮度变换来使用,它将亮度值的特定范围边界平滑地映射到一个新的亮度范围,其亮度变换规则如式(3)所示。ITK中通过式中4个参数来调节,使Sigmoids滤波器具有更高的机动性。

其中,I是输入像素亮度,I′是输出像素亮度,Min、Max 表示输出像素的最小值与最大值,由用户自定义。α表示输入亮度范围的宽度,β表示围绕在范围中心的亮度。

经过对比分割效果和分割效率等因素,在分割大面积组织区域时一般采用区域生长分割法,分割效率高,算法稳定性强;对小面积轮廓复杂的目标区域进行分割时采用水平集分割,分割轮廓保持较好。

3 基于VTK的医学序列图像三维重建

通过VTK可视化工具包来完成医学图像的三维重建,其封装了实现三维可视化的两种技术:面绘制和体绘制[9]。

3.1 面绘制方法及其编程实现

根据数据类型的不同,VTK 中提供了多个等值面提取类,其等值面提取算法多是基于MarchingCube 算法来实现,本文选用VTK 中的体素级重建方法(Marching Cubes,MC)算法完成面绘制[10-11]。核心实现程序如下:读取DICOM序列图像,初始化渲染对象,创建渲染窗口,添加交互机制:

接下来实例化vtkMarchingCubes 类来抽取等值面:

此处的(0,value)代表提取的第一个面及其提取值,可以通过SetValue添加提取多个等值面。提取等值面后实例化Actor和Mapper,接受提取轮廓并进行绘制实现可视化。

MC算法仅显示特定的等值面信息特定轮廓,对于其他信息,在绘制时会直接舍弃,无法展示更多细节。为了解决这种问题,采用体绘制方法进行完善。

3.2 体绘制方法及其编程实现

体绘制技术是一种直接基于视觉原理的三维重建技术,通过体数据直接合成三维图像。不同于面绘制方法,体绘制需要对体数据属性(Volume Property)进行设置,包括不透明度传递函数、梯度不透明度函数和颜色传输函数[12-14]。

3.2.1 不透明度传递函数不透明度传递函数是一个分段线性标量映射函数,利用该函数可将光线透射过程中的采样点灰度映射为不同的不透明度值,以决定最终的颜色值。vtk 中使用vtkPiecewiseFunction类对其进行设定。设置方法有两种:第一种为直接添加断点,使用方法为intAddpoint(double x,double y),参数x 为自变量即灰度值,参数y 为映射值即不透明度。第二种为直接添加一条线段,即添加两个断点void AddSegment(double x1,double y1,double x2,double y2),断点(x1,y1),(x2,y2)组成一条线段,参数含义同第一种方法。一个标准的直接添加断点的不透明度设置代码如下:

3.2.2 梯度不透明度函数梯度模值映射为一个不透明度乘子,从而增强过渡区域的显示效果。该函数同样使用vtkPiecewiseFunction 类。一个具体的添加不透明度函数的代码如下:

上述代码中,当点的梯度小于等于x1时,一般从0开始,即不透明度乘子设置为0,呈透明状态。梯度介于x1和x2之间时,不透明度乘子通过线性映射至y1到y2之间的数值。梯度为x2时,不透明度乘子设置为y2,以此类推到y3。

3.2.3 颜色传输函数颜色传输函数的使用与不透明度传输函数类似,但颜色传输函数需要把一个标量映射为颜色值。该颜色值的设置有两种选择:Red Green Blue(RGB)色彩模式值和Hue Saturation Value(HSV)颜色空间值,一般无特殊要求的情况下均选用RGB 值。 VTK 中的颜色传输函数采用vtkColorTransferFunction类实现。

通过设置体绘制参数,实现了面绘制中类似骨骼等值面提取的可视化效果,但重建结果质感更加真实,如图2所示。

图2 不同体绘制属性下的效果Fig.2 Volume rendering results under different volume rendering attributes

不同体绘制参数获得不同骨骼、肌肉效果,图2a中实现了与面绘制中类似骨骼等值面提取的可视化效果,较传统的二维X光片更具直观和真实性。图2b调高参数上下限获得更详细的骨骼信息,增加了胸骨、锁骨等模型,在临床应用中医师可通过该骨骼三维模型查看患者骨骼情况。图2c中显示软肋等软骨信息,但脊柱显示较模糊,当患者软骨患有病灶时可采用该视图参数查看。图2d增加了肌肉、内脏等信息,可为医师提供患者内脏患病情况。在实际临床应用时,可根据患者具体情况,选择不同参数建立模型,提高诊断效率。

4 医学图像处理系统的设计及案例分析

通过开发平台将图像的分割、重建等工作集成到医学图像处理系统中,旨在提供一款快速浏览并处理医学图像的软件,以辅助用户进行医疗诊断和科研分析。系统采用C++语言,在64位的Windows7系统中,以VS2013为开发平台,结合ITK、VTK开发工具包和QT 5.8.0进行开发。以一位青少年特发性脊柱侧弯患者CT序列图像在本系统中图像处理为例,构建其骨骼、肌肉等三维模型,测量患者侧弯角度,为治疗医师提供直观的视觉效果,方便临床治疗。

系统采用通用的框架结构,即遵循底层、中层、上层3层构架结构。上层即数据应用层,用来实现图像显示、用户交互和参数设置等功能;中层为数据处理层,用于实现医学图像的读取、二维分割与显示、三维重建等功能,是实现业务逻辑的层构架;底层即算法库和系统自带的底层框架,供中层调取使用。

4.1 图像读取与保存

医学图像的读取、显示和保存除了支持医学DICOM 和STL 图像格式文件外,分别调用vtkJPGEReader、vtkBMPReader类增加了对通用图片格式JPG、BMP的读取,此模块可实现快捷的格式转换[15-16]。读入患者CT数据,运行结果如图3所示。

4.2 图像预处理模块

图像预处理模块包括滤波处理和形态学处理,其中形态学处理也可以作为分割后处理。此模块分别调用itk Binary Erode Image Filter、itk Binary Dilate Image Filter、itk Grayscale Fillhole Image Filter、itk Binary Fillhole Image Filter、vtk Image Gaussian Smooth、vtkI mage Convolve及其成员函数来实现[17-18]。

4.3 图像分割模块

图像分割模块集成了3 种分割方法:阈值分割、区域生长分割和水平集分割。具体实现方法和核心代码前文已作阐述,此处不再赘述。

4.3.1 阈值分割模块阈值分割模块页面如图4 所示,包含二值阈值分割参数设置、二值阈值分割、最大类间方差法(OTSU)分割3部分。

阈值分割模块包括二值阈值分割和OTSU分割,其中由日本学者Nobuyuki Otsu提出的OTSU是一种基于图像的自动分割算法,不需要输入参数。二值分割需要输入上下门限值,点击菜单栏“阈值分割”,进入“二值阈值分割参数设置”,跳出对话框,进行参数设置。图5 和图6 分别为参数设置模块和对应参数下的分割结果,分别分割出内脏和骨骼模型。

图3 图像读取及显示Fig.3 Image reading and display

图4 阈值分割模块Fig.4 Threshold segmentation module

青少年特发性脊柱侧弯(Adolescent Idiopathic Scoliosis,AIS)是发生在三维空间中脊柱和肋骨的畸形导致的人体躯干畸形[19-21]。为方便医师观察AIS患者的骨骼和肌肉的情况,设置不同参数分别提取骨骼、肌肉模型,医师可选择侧弯椎体提取上下椎体侧弯线,测量对应侧弯Cobb 角度,结果如图7 所示,为医师诊治提供快捷操作。为增加模型的逼真度,将模型进行了平滑处理,且通过鼠标的按键可对三维模型进行缩放、旋转、平移等操作,实现用户交互,体验效果良好。构建的三维模型为stl 格式,可由UG、SolidWorks等三维建模软件读取,方便模型的后续处理。

4.3.2 区域生长分割模块用户提供分割种子点,通过“区域生长分割参数设置”对话框进行参数设置,点击应用即可得到该参数范围内的模型点云数据(图8)。

4.3.3 水平集分割模块水平集分割模块通过“水平集分割参数设置”对话框输入分割参数,其中α为亮度范围的宽度,β为围绕在范围中心的亮度(图9)。

图5 二值阈值参数设置Fig.5 Parameter setting of binary threshold

图6 不同参数下二值阈值分割结果Fig.6 Segmentation results of binary threshold under different parameters

图7 人体三维模型及Cobb角Fig.7 Three-dimensional model of human and Cobb angle

图8 区域生长分割模块Fig.8 Region growth and segmentation module

4.4 三维重建模块

三维重建模块包括面绘制模块和体绘制模块。面绘制使用MC算法,设置提取等值面的值,在“面绘制参数设置”对话框设置数值,不同参数的面绘制模块如图10所示。

体绘制模块实现了光线投影法和最大密度投影法两种绘制方法,使用默认参数直接进行体绘制。在交互方面,提供了VTK中的常用交互,可以实现模型的缩放、翻转等功能。另外加入vtkPlaneWidget,实现模型任意方向的平面切割。

图9 水平集分割模块Fig.9 Level set segmentation module

图10 面绘制模块Fig.10 Surface rendering module

体绘制界面分为两部分,如图11所示,左侧为使用最大密度投影法实现的体绘制结果,右侧为平面切割后获取的切割平面图像。鼠标左键拖住穿过切割平面(红色平面)的箭头可以调节切割角度,拖住平面内任意一点进行上下移动,可以得到不同位置的切割图像,交互过程简单便捷。

5 结语

医学图像分割及三维重建技术在骨科诊疗等多个领域具有重要应用,真实、立体的三维模型可直观显示患者病痛位置,降低医生诊断难度,缩短诊断时间,提高工作效率;同时,医生在与患者沟通过程中可方便交流,减少医患冲突。在Window7 系统中基于VS2013 和QT5.8.0,调用VTK、ITK 软件开发包设计医学软件处理系统,该系统较常用的医学图像处理软件mimics 可节省大量处理图像的时间,且模型划分更清晰、逼真。系统包括4 大功能模块,实现了图像的二维分割和三维重建功能,且提供了良好的用户交互。随着医学采集技术的迅猛发展,医学图像数据包含的信息越来越多,随之而来的是待处理数据量的不断增加,优化分割算法对海量数据进行更高效的处理是后续研究的一个重要方向。

图11 体绘制界面Fig.11 Volume rendering interface

猜你喜欢

参数设置三维重建绘制
绘制童话
三维重建的飞机机动动作库设计与可视化
作品赏析
多层螺旋CT三维重建后处理技术在骨肿瘤影像诊断中的价值
基于Mimics的CT三维重建应用分析
绘制世界地图
逃生疏散模拟软件应用
蚁群算法求解TSP中的参数设置
三维重建结合3D打印技术在腔镜甲状腺手术中的临床应用
RTK技术在放线测量中的应用