CT图像重建计算机模拟实验研究.docVIP

  • 18
  • 0
  • 约7.39千字
  • 约 14页
  • 2017-03-23 发布于北京
  • 举报
CT图像重建计算机模拟实验研究.doc

CT图像重建计算机模拟实验研究 摘 要 CT图像重建理论是医学影像技术的基础,为了帮助医学影像学专业的学生更好地理解CT图像重建的思想,本文研究了基于MATLAB和C#的CT图像重建计算机模拟软件的制作。利用MATLAB进行编程,实现动态显示扫描过程及断层图像的重建。利用C#进行软件界面设计,处理好MATLAB与C#的接口,最终形成的软件可以满足医学院校影像学专业进行CT图像重建计算机模拟实验的要求。 关键词 CT图像重建;MATLAB;C#;混合编程 中图分类号:TP391.41 文献标识码:A 文章编号:1671-7597(2014)15-0045-04 CT图像重建的思想和理论是医学影像物理学的重要内容,涉及较多的数学知识,内容抽象难学,教学难度大,需要开发直观形象的教学软件辅助教学。Microsoft Visual C#是Microsoft专门为使用.NET平台开发的一种强大的、面向组件的语言,可用于方便快捷的创建运行在.NET公共语言运行库(common language runtime,CLR)上的Windows应用程 序[1]。C#是微软.NET战略中核心的开发工具,它综合了Visual Basic的高效率和C++功能的强大性,具有良好的界面设计功能,可以很方便的建立应用程序的可视化界面[2]。但其计算能力与MATLAB相比编程显得较为复杂。MATLAB是一种面向科学计算、数据可视化、系统仿真及交互式程序设计的高级语言[3]。它以矩阵运算为基础,极少的代码即可实现复杂的功能。将C#界面设计能力和MATLAB的强大科学计算能力相结合,可以解决图像处理,工程计算等多个领域,具有良好的应用前景。基于MATLAB和C#的CT图像重建计算机模拟软件可运用于医学院校医学影像学专业的教学,学生可以通过本软件掌握CT图像重建的物理原理和数学方法。 1 软件设计与实现 CT图像重建是通过C#与MATLAB混合编程实现的。软件的设计目的是用两种X射线束(平行束和扇形束)对不同头模型(椭圆头模型和S-L头模型)进行扫描,用户可以选择不同的重建算法(直接反投影法,R-L滤波反投影法,S-L滤波反投影法)对头模型进行图像重建。此外用户还可以直观看到不同方法的扫描过程。软件功能图如图1所示。 图1 软件功能图 2 MATLAB程序优化 虽然MATLAB软件提供了大量的专业化的工具箱,但是MATLAB语言是一种解释性语言,其执行速度较慢,当用户选择不同的重建算法对头模型进行图像重建时,程序运行速度较慢。主要是因为在编程时并没有考虑到程序优化。MATLAB中通过tic函数和toc函数来查看一段程序的CPU使用时间,比较程序优化前后的运行速度。 2.1 使用MATLAB自带函数 MATLAB内部函数是由更底层的编程语言C构造的,它的执行速度显然快于自己编写的程序[4]。这些函数都是经过严格测试的,运行不会出现错误。这样既可以避免自己编写函数繁琐的过程也可以加快运行速度。如在取整数的时候就可以直接使用MATLAB自带的fix函数、round函数。 2.2 大型矩阵的预先确定维数 大型矩阵动态扩展是非常耗费时间的,因为预先确定数组维数后不允许数组动态扩展,虽然数组的适应性降低,但其访问速度加快,访问变得非常容易,这样可以大大减少运行时间,所以用MATLAB的内部函数确定数组维数,然后再进行运算。比如数值数组用zeros(),结构数组用repmat()等,用repmat()函数能获得连续的内存块,加快的程序运行速度[5]。 2.3 自定义函数 在编译代码时会遇到多次使用到相同语句的时候,为了减少因为重复运行相同代码所消耗的时间,可以把程序中需要用到的语句写成一个函数,在之后碰到相同的情况下就可以直接调用已经定义好的函数,这样既缩短了MATLAB代码的长度,也加快了程序运行速度。例如程序会多次用到将反投影运算,为了避免代码重复,就可以将反投影运算单独写成一个函数,之后再遇到反投影运算时就可以直接调用该函数,加快代码运行速度。 2.4 循环向量化法 为了避免因多次使用while和for而减慢程序运行速度,可以将带有while和for循环的语句转化为向量操作。在很多情况下,优先考虑利用循环过程向量化来提高MATLAB代码的运行速度,这是MATLAB程序优化非常有效的方法。循环向量化解决重复执行动作的思想是通过MATLAB的矩阵操作完成的。向量是矩阵的一种特殊形式,如果运算对象是向量,那么运算结果也是向量,这就可以省去这其中循环结构的使用,大大提高运行速度。对于不能向量化的程序,应该尽量使内循环的次数多于外循环的次数[6]。 例1 以椭圆头模型在平行束扫描下的直接反投影法为例,程序优化前后对比,具体代码如下: 程序优化前: %N2为投影次数,N1为X(Y)方向

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档