基于MATLAB的CT图像三维重建的研究与实现_0

  • 格式:doc
  • 大小:28.50 KB
  • 文档页数:5

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB的CT图像三维重建的研究与实现

【摘要】介绍了利用MATLAB软件对CT切片图像进行三维重建的方法与程序实现。分别对体绘制法、面绘制法实现的三维重建进行了研究与讨论。利用MATLAB软件制作GUI界面,实现对肺部CT图像的三维重建以及切分操作。

【关键词】体绘制;面绘制;三维重建;GUI界面

CT(Computed Tomography)技术是指利用计算机技术对被测物体断层扫描图像进行重建获得三维断层图像的扫描方式。自从CT被发明后,CT已经变成一个医学影像重要的工具,虽然价格昂贵,医用X-CT至今依然是诊断多种疾病的黄金准则。利用X射线进行人体病灶部位的断层扫描,可以得到相应的CT切片图像。医生可以通过对连续多张CT切片图像的观察,来确定有无病变。应用三维重建技术可以将连续的二维CT切片图像合成三维可视化图像,便于观察研究。医学图像的三维建在判断病情、手术设计、医患沟通和医学教学等方面具有很高的研究价值。CT图像通常是以DICOM格式存储,实验中通常需要转换格式。本文分别研究讨论了利用MATLAB软件实现对JPG格式的CT切片三维重建的两种常用方法,并制作GUI界面实现切分操作。

1.MATLAB软件在生物切片图像三维重建中的应用

MATLAB7.O提供了20类图像处理函数,涵盖了图像处理包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。

Matlab软件环境提供了各种矩阵运算、操作和图象显现工具。它已经在生物医学工程,图象处理,统计分析等领域得到了广泛的应用。在三维重建方面,使用的数据量相对较大,同时涉及到大量的矩阵、光线、色彩、阴影和观察视角的计算,对于非计算机专业研究人员来讲,难度很大。利用MATLAB软件中的图像处理函数、工具箱操作,可以大大简化研究。

2.常用的三维重建方法

2.1 面绘制

面绘制法是指利用几何单元拼接拟合物体表面来描述物体的三维结构,实现三维重建,也被称为间接绘制方法。

面绘制法的基本原理是从三维数据场中提取出物体的表面部分,用一系列连续的三角形或平面多边形片近似地表示物体的表面特征。这种近似地方式类,似于用正八十面体表示球面。

2.2 体绘制

直接将体素投影到显示平面的方法称为直接绘制方法,也称为体绘制法。

体绘制是直接利用三维数据场的信息,将整个三维数据场投影出来,达到三维的视觉效果。体绘制法将数据场中的多种物质在一个可视图中显示,揭示它们的相互关系。

面绘制法相对处理数据量小,重建效果信息量小,外观好,计算速度较快,但是内部简单。体绘制算法认为体数据场中每个体素都有一定的属性(透明度和光亮度),而且通过计算所有体素对光线的作用即可得到二维投影图像,因此,体绘制可以利用模糊分割的结果,甚至可以不进行分割即可直接进行体绘制。这样做的好处在于有利于保留了三维医学图像中的细节信息。因此体绘制算法在对医学图像的重讲具有更好的效果。

3.肺部CT图像的三维重建GUI界面的制作

GUI是Graphical User Interface的简称,即图形用户界面。MATLAB软件中,提供了制作GUI界面的模块。利用GUI界面操作运行程序,更为方便直观。下面介绍GUI界面在肺部CT图像重建中的应用设计方法。

本实验一共使用连续肺部CT切片20张(图1),利用体绘制方法实现三维重建与部分重建。GUI界面实现了切分位置的设定以及三个视角的切换功能。

(1)界面设计

利用MATLAB软件设计GUI操作界面,添加“查看原图片”按钮,用于显示原始图片:添加网格效果,便于切分位置的设定。利用滚动条,可以动态的设置三维切分的参数,可以有针对性的对感兴趣部位进行部分重建观察,来实现切分效果。“视角选择”中,设置了三个单选按钮,用来调整三维观察的视角。参数设定完成,点击“三维切分”按钮,实现三维效果。图像显示于界面右侧。“清空”按钮用于清除结果,进行下一次操作。

(2)主要控件功能的程序实现

a.查看原图片:在该按钮Callback函数下,编写如下程序实现与图片的预览与网格的添加:

[fname pname index] = uigetfile ({‘*.jpg’;‘*.bmp’},‘选择图片’);%文件选择对话框

if index %若选择了图片

str = [pname fname];%获取图片路径和图片名

M = imread(str);%读取图片

imshow(M),title(’原始图像’);%显示图片

axis on;

grid on;%添加网格

b.重建参数的设定

利用slider的Callback函数下,分别设定三维切分参数X,Y,Z。

X=get(handles.slider1,’value’)

set(handles.edit1,’string’,num2str(X));

Y,Z参数在对应位置,做相同设置。

C.三维切分主程序

主程序采用体绘制三维重建方法,具体如下:

srcDir=uigetdir(‘Choose source directory.’);获得选择图片的文件夹

cd(srcDir);

image1=imread(’1.jpg’);…;

image20=imread(’20.jpg’);%使用imread函数读取实验用20张片

D=cat(3,image1,… ,image20);%利用cat函数创建三维矩阵DD=squeeze (D);

[x y z D]=reducevolume(D,[1 1 1]);%使用reducevolume数据预处理

D=smooth3(D);

X=get(handles.slider1,’value’);

Y=get(handles.slider2,’value’);

Z=get(handles.slider3,’value’);%切分位置的参数传递

[x,y,z,D]=subvolume(D,[X,512,Y,512,0,Z]);%设定部分重建