您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 基于MATLAB的CT图像三维重建的研究与实现
基于MATLAB的CT图像三维重建的研究与实现张振东1,哈力旦·A2(新疆大学电气工程学院,新疆乌鲁木齐830047)摘要:介绍了利用MATLAB软件对CT切片图像进行三维重建的方法与程序实现。分别对体绘制法、面绘制法实现的三维重建进行了研究与讨论。利用MATLAB软件制作GUI界面,实现对肺部CT图像的三维重建以及切分操作。关键词:体绘制;面绘制;三维重建;GUI界面0引言CT(ComputedTomography)技术是指利用计算机技术对被测物体断层扫描图像进行重建获得三维断层图像的扫描方式。自从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是GraphicalUserInterface的简称,即图形用户界面。MATLAB软件中,提供了制作GUI界面的模块。利用GUI界面操作运行程序,更为方便直观。下面介绍GUI界面在肺部CT图像重建中的应用设计方法。本实验一共使用连续肺部CT切片20张(图3-1),利用体绘制方法实现三维重建与部分重建。GUI界面实现了切分位置的设定以及三个视角的切换功能。图3-1部分肺部CT图像(1)界面设计利用MATLAB软件设计GUI操作界面,添加“查看原图片”按钮,用于显示原始图片:添加网格效果,便于切分位置的设定。利用滚动条,可以动态的设置三维切分的参数,可以有针对性的对感兴趣部位进行部分重建观察,来实现切分效果。“视角选择”中,设置了三个单选按钮,用来调整三维观察的视角。参数设定完成,点击“三维切分”按钮,实现三维效果。图像显示于界面右侧。“清空”按钮用于清除结果,进行下一次操作。(2)主要控件功能的程序实现a查看原图片:在该按钮Callback函数下,编写如下程序实现与图片的预览与网格的添加:[fnamepnameindex]=uigetfile({'*.jpg';'*.bmp'},'选择图片');%文件选择对话框ifindex%若选择了图片str=[pnamefname];%获取图片路径和图片名M=imread(str);%读取图片imshow(M),title('原始图像');%显示图片axison;gridon;%添加网格b重建参数的设定利用slider的Callback函数下,分别设定三维切分参数X,Y,Z。X=get(handles.slider1,'value')set(handles.edit1,'string',num2str(X));Y,Z参数在对应位置,做相同设置。C三维切分主程序主程序采用体绘制三维重建方法,具体如下:srcDir=uigetdir('Choosesourcedirectory.');获得选择图片的文件夹cd(srcDir);image1=imread('1.jpg');…;image20=imread('20.jpg');%使用imread函数读取实验用20张片D=cat(3,image1,…,image20);%利用cat函数创建三维矩阵DD=squeeze(D);[xyzD]=reducevolume(D,[111]);%使用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]);%设定部分重建位置,实现切分fv=isosurface(x,y,z,D,'noshare');p=patch(fv,'FaceColor',[1,.75,.65],'EdgeColor','none');isonormals(x,y,z,D,p);fvc=isocaps(x,y,z,D,'noshare');p1=patch(fvc,'FaceColor','yellow','EdgeColor','black')colormap(gray);ifget(handles.radiobutton1,'value')%三个视角参数设定az=-37.5;el=30;elseifget(handles.radiobutton2,'value')az=60;el=30;elseifget(handles.radiobutton4,'value')az=-37.5;el=60;endview(az,el);%视角参数传递lightinggouraud;结果显示设置axisequal;daspect([1,1,.3]);axison;gridon;实验中,对不同视角和不同切分位置的重建如图3-2和图3-3所示:(a)(b)图3-2不同视角的重建(a)(b)图3-3不同切分位置的部分重建4.结束语本文主要介绍了常用的两种三维重建方法,认为体绘制方法更适用于医学图像的重建。此外,重点介绍了利用在MATLAB环境下利用GUI界面实现肺部CT切片体绘制重建界面操作的程序实现方法,该实验实现了三维视角的切换和部分重建位置的设定操作。三维重建技术在医学领域应用广泛,对它的研究具有重要意义。参考文献【1】冈萨雷斯.数字图像处理【M】.北京:电子工业出版社,2007.【2】张威,隋天中,赵卫.CT图像表面重建技术中的边缘轮廓提取方法[J].机械科学与技术,2002,21(s1):91-97.【3】高艳,唐晓英,张军莉,等.基于物体空间序法的cT图像三维重建算法的研究[J].北京生物医学工程,2003,22(3):180-l83.【4】王成波,陈伟,谢兵.等.DICOM图像与BMP图像的转换研究[J].医疗卫生装备.2004(1):13-17【5】穆伟斌,张淑丽.医学CT断层图像三维重建的Matlab实现方法[J].齐齐哈尔大学学报,2009,25(1):33-35.
本文标题:基于MATLAB的CT图像三维重建的研究与实现
链接地址:https://www.777doc.com/doc-2570529 .html