头肩部CT图像分割和重建技术的实现分析
2023-09-25方文海高明亮
方文海,高明亮
(西北民族大学 电气工程学院,甘肃 兰州 730030)
0 引言
计算机断层扫描(Computed Tomography, CT) 是目前医生对病人病灶进行诊断的主要依据和手段,而且在疑难病证诊断中应用越来越重要。然而,当今医学CT图像仍旧存在诸多应用上亟待改进的地方。
首先,直接获得的CT图像是二维灰度图像,该图像存在灰度值偏高、含有加性噪声等普遍现象,医生在高强度的工作环境下,难免会导致判断上的失误[1-2]。因此需要加强对图像中病变区域提取的自动化和智能化能力。目前,围绕图像分割常用的技术有阈值分割和区域生长分割等[3]。阈值分割是根据不同预设的阈值条件将图像区域划分到合适类别中[4]。阈值分割算法具有处理简单、运算效率较高、实时性好等优点。区域生长分割算法把相似的像素构建集合区域,并在周边不断寻找相似像素,直到无法找到类似的点为止[5]。区域生长法能够有效地分割出连通区域,但是需要人为设定种子点,容易混入噪声或产生空洞,而且该算法一般需要串行处理方式。
其次,为了构建能够显示身体器官的三维立体结构,需要借助三维重建技术从二维图像序列构建三维立体模型[6-7]。由已知CT二维图像序列重建三维结构常有面绘制和体绘制两种方式[8-9]。面绘制和体绘制算法各有千秋[9]。面绘制算法可以实时响应、容易高效实现;体绘制算法能完全呈现结构、但是占用计算机大量内存。考虑三维显示响应速度,采用面绘制算法重建,可以快速复原病源状态。
因此,针对医学CT 图像分割和三维重建技术具有重要的科学研究和实践应用价值,本文分别采用阈值分割技术和面绘制技术对上述两个问题进行研究与实现。
1 医学CT图像的阈值分割处理
在CT 图像中,不同的人体结构呈现不同的像素值,但是这些像素值一般呈现连续性。为了提取所关注的人体结构部分,忽略不关注的其他结构,需要根据CT 图像不同人体结构进行量化处理,如将头颅的骨骼部分设置为一种值,其余组织结构设置为另一种值,这种处理方式就称为阈值处理。
利用阈值分割法对CT 图像进行分割时,关键是设置分割的阈值大小T。阈值T一旦设置好之后,当输入图像触发分割阈值T,就执行阈值分割,输出阈值分割后的图像。以常见的二值化为例,突出关注结构的轮廓,一般将前景设置为255,背景调成0。这个过程可以用(1)来表示,其中f(x,y)表示图像的像素值大小。
在实际应用中,有的人体组织往往呈现不连贯性[10],当所关注的对象分量未处于单一范围内时,需要调整分割范围,以实现对多个目标分量的提取[11]。如像素值为255 时,能提取出骨骼;而像素值区间在[51,102]区间范围时,获取皮肤表面。
图1 表示不同分割参数下的数据提取。(1)表示输入原图像,该图像包含所有像素且遍历整个平面直角坐标系。(2)表示提取的内部软组织结构,提取像素阈值设为[103,204]区间。
图1 不同分割方式的显示效果对比图
2 直方图功能和均衡化
图像在分割之后,在三维重建之前,还需要进行图像增强处理。图像增强的目的是按照特定目标获得图像中的有用信息,改善和增强图像视觉效果。此外通过图像增强,还能对前期的分割效果进行评判,发现分割是否过度的问题。
直方图均衡化是一种常见的图像增强算法。其核心思想是把某些独立的灰度空间扩展到图像全局,从整体上满足均匀分布,使有限范围内的像素变化趋向缓和并提升对比度。直方图均衡化对背景和前景都过亮或过暗的图片也很适用[12]。通过直方图均衡化可以有效改善CT 切片显示的细节缺陷,尽可能优化图像配准。
利用VTK(Visualization Toolkit)软件中vtkImage-Accumulate 的方法可以实现对图像的直方图均衡化处理。首先,要获取原始图像的信息,为了便于鉴别图像的各种颜色,利用vtkImageExtractComponents 类对各颜色成分设置不同的序号。添加颜色和极值设置,设定最大横纵坐标。得出各灰度之间的概率分布函数,对连通分量统计得到累积分布函数,以图像最小灰度值为起点,控制间隔个数,且不考虑像素值为零的点。然后利用vtkImageAccumulate对每个连通分量进行有效隔离映射,更新离散间隔灰度。当直方图明显呈现双峰情况时,选择两个峰值的中点作为最佳均衡范围。最后调整图源数据类型,遍历每个像素点对输入图像进行均衡化处理。
图2 为直方图均衡化前后的图像直方图对比结果。由图2可见,均衡化后的像素分布明显缓和,像素点略有减少。这个处理作用在于让图像清晰、加大横向对比度、形成层次感;图3为直方图处理前后的图像对比,左侧部分区域存在模糊,而右侧图像中一些部分纹理结构很明显。
图2 直方图对比组图
图3 直方图对比组图
3 三维重建和渲染实现
面绘制算法中使用最广泛的方法是移动立方体算法。图4展示了移动立方体算法的主要关键要素,主要包括体元和等值面。通过对数据源扫描可以得到体元模块,建立与查找表之间的关联,并封装在算法内,便于重建时遍历应用。体元模型总体归纳成15种基本形态,依据查找表,可以在虚实边界之间拼接三角面片,确定显示位置和网格表面数据。等值面的抽取需要通过在序列中的两张连续切片来实现。
图4 移动立方体算法示意图
采用VTK 平台的移动立方体算法进行三维重建主要包括等值面抽取、数据映射、绘制渲染、构造“演员”和可视化显示输出这几个关键的步骤。
用vtkImageMarchingCubes 类实现等值面提取,通过类中的静态函数SetInputConnection()进行插值和滤波处理;结合静态函数SetValue()设置提取的等值信息;基于vtkPolyDataNormals 类的智能指针,实现法向量绘制和特征角调整。采用vtkStripper类对三角面片快速提取、纹理结构产生,以及可视化显示。
应用面绘制时,可能会使图像缺失些许细节,这时可以通过加入几何渲染处理环节,利用光照修正模型实现[13]。在VTK中的vtkProperty类可以实现光照修正模型渲染效果。虚拟光源是通过对颜色、透明度等方面调整实现,表面属性由“演员”来控制设定。
经过上述一系列处理,便可以得到三维重建后的效果。控制对立体数据的缩放和翻转,实现对重建结果在不同角度的观察,同时可以根据需求得到不同器官组织数据。图5显示了骨骼、皮肤和内部软组织的提取模型。
图5 面绘制头肩部不同组织重建模型
4 结论
本文以医学头肩部CT 图像为研究对象,以可视化工具包VTK为主要实践平台,针对分割技术和重建技术进行分析与研究。首先,采用阈值分割法对CT图像中的病变点进行分割处理,然后采用灰度值直方图对分割后的图像进行增强处理,最后,采用面绘制算法和光线修正模型完成二维序列的三维重建工作。实验结果表明,本文提出方法能够较好地实现医学CT图像分割和三维重建目标。