当前位置:首页 > 文献频道 > 临床内科学 > 文献详细

《眼科学》

Matlab平台在构建角膜三维图像模型中的应用

发表时间:2012-04-19  浏览次数:768次

  作者:陈凯迪1,王波2,施明光3 作者单位:1.温州医学院 信息与工程学院,浙江 温州 325035;2.南京财经大学 数学系,江苏 南京 210046;3.温州医学院附属第二医院 眼科,浙江 温州 325027

  【摘要】 近年来,随着角膜数学模型研究的深入,人们已经认识到角膜表面可用椭球面方程来描述。由于数学模型比较抽象,缺乏直观性,现有的角膜地形图仪也只能提供角膜的二维平面图,不具立体感。本研究在数学模型的基础上利用Matlab开发工具构建角膜三维图像模型,旨在为眼科临床、科研及教学提供更多的技术支撑。我们在构建角膜三维形态方面利用了开发工具提供的椭球面造型函数和曲面生成函数,为使图像更具真实感,编程调用了表面着色、光照、材质及透明度等函数对角膜面进行渲染,同时调用了图形交互函数为用户获取实时数据带来便利。在Matlab平台上构建角膜三维图像模型具备形象、直观的效果,且方法简便、高效,为科研人员创建角膜图像模型“档案”提供了一种新的途径。

  【关键词】 角膜;图像模型;Matlab

  Using Matlab to construct a 3-D image model of the cornea

  CHEN Kaidi*, WANG Bo, SHI Mingguang.

  * The Information and Engineering School of Wenzhou Medical College, Wenzhou China, 325035

  [Abstract] During recent years, with advances in developing a mathematical model of the cornea, people have realized the possibility of describing the corneal surface using an ellipsoid equation. This mathematical model is abstract and does not promote intuitive thinking. In addition, existing corneal topography instruments can only offer two-dimensional planes without a stereoscopic view. This presentation uses the Matlab program to build a three-dimensional corneal model on the basis of a mathematical model and attempts to provide more technical support for clinical, research and teaching fields in ophthalmology. In the construction of the 3-D image model, we introduce the ellipsoid shaping function and surface generating function provided by Matlab. In order to provide realistic images, functions such as a surface shader, illumination sources and material and transparency render the images. In addition, an interactive graphical function is introduced to provide real-time data for the users. To conclude, constructing 3-D image models on the Matlab platform offers the advantage of intuitive images and simple methods that blaze a new trail in building archives of corneal image models for research purposes.

  [Key words] cornea; image model; Matlab

  [中图分类号]  Q819;Q242.1;R778 [文献标识码] A

  [文章编号] 1008-1801(2009)05-0375-03

  角膜在眼球屈光系统中起着极其重要的作用。半个多世纪以来,关于角膜数学模型的研究从未停止,随着研究的深入,人们已经逐渐认识到正常角膜前后表面均为近似椭球面。目前临床上可以利用角膜地形图仪采集到个体角膜的曲率、厚度、前后表面地形及高度等数据,根据这些数据可以重建较为准确的角膜数学模型,但数学模型往往只提供了角膜曲面或截痕曲线的数学表达式,缺乏直观性。若希望进一步了解角膜面的本质,为科研、临床乃至仪器设备的设计提供更多的指导,一个立体、直观的角膜三维图像模型就显得十分重要。

  近年来计算机辅助几何设计(CAGD)的发展为生物医学图像的三维重建提供了良好的技术支持。人们曾经在角膜的计算机三维模型构建方面做过一些努力,如利用Visual C++平台结合OpenGL图形应用程序接口构建角膜三维模型[1]、通过APDL语言在有限元平台ANSYS上构建角膜三维模型[2],这两种方法的缺点是开发过程比较繁琐,开发工具难以掌握,不适合临床医师等非计算机专业科研人员使用。本研究拟采用Matlab平台构建角膜图像模型,其优势在于界面友好,易于掌握,能够快速、高效地在计算机上绘制角膜三维形态。

  1 角膜数学模型的发展

  角膜是一个曲面,即具有某种性质的点的集合。从理论上讲,每张曲面都有它自己的数学模型,即描述物体表面形状的数学表达式,也称为物体的几何模型。为了临床治疗与科研的需要,半个多世纪以来,人们一直在寻求一种最符合绝大多数正常人眼角膜的数学模型。Baker在1943年提出了角膜的子午线截面为圆锥体截痕的理论y2=2r0x-px2 [3];Mandell根据Baker角膜截痕理论,采用照相角膜镜技术测量人眼角膜各子午线的曲率,提出以椭圆公式表达人眼角膜截面模型■+■=1 [4];Bennetts等于1991年提出了采用轴向角膜地形图的矢状曲率半径rs和角膜顶点曲率半径r0的角膜截面公式rs2=r02+(1-p)y[5];2002年,Gatine等发现正常人眼角膜前表面为椭球面,用方程x2+y2+(1+Q)z2-2r0z=1来表达角膜面形状[6]。近年的研究利用角膜地形图的正切曲率半径推算得到角膜子午线截痕二次曲线方程为y2=a1z+a2z2,结合临床检查中利用Orbscan-Ⅱ角膜地形图仪采集到的前、后表面分布点的角膜曲率等数据,推导该二次曲线为椭圆,从而进一步推断国人角膜前、后表面均为椭球面,可用方程表示为■+■+■=1和■+■+■=1[7]。

  2 应用Matlab构建角膜三维图像模型的方法

  2.1 Matlab简介 Matlab是一种用于算法开发、数据可视化、数据分析以及数值计算的高级计算语言和交互式环境,它提供了将工程和科学数据可视化所需的全部图形功能。特别是在图形的光照处理、色度处理以及四维数据的表现等方面,Matlab具备出色的处理能力。新版本Matlab的内核是用C++语言开发,它重载封装了C++中大量功能强大的数学库和图形库,而且语法比较简单,方便于非计算机专业的科研人员使用。本研究采用的是Matlab R2007b版本,对角膜进行实时快速构建及半物理仿真。

  Matlab提供了mesh、ezmesh、surf、ezsurf等函数用于绘制自定义的三维曲面,对于圆柱面、球面、椭球面等比较特殊的几何体,Matlab还提供了相应的实体造型函数[8],这就为绘制角膜三维形态带来了很大的方便。

  2.2 角膜三维几何形态绘制 根据已知的国人眼角膜前、后表面数学模型■+■+■=1和■+■+■=1,可利用Matlab中的椭球面造型函数ellipsoid来准备绘制数据。由于角膜面并不是一个完整的椭球面,而只是椭球面的一小部分,所以必须利用Matlab曲面绘制中的切削方法,即将几何数据的某一部分换成内置变量NaN(表示数据为空)。绘制角膜前表面的部分代码如下:

  [u,v,w]=ellipsoid(0,0,7.8528,7.9499,7.8064,7.8528,100);

  ii=find(w<12);

  w(ii)=nan;

  h=surf(u,v,w);

  2.3 模型表面真实质感渲染及图形交互 角膜的基本形态绘制完成后,需要对图形进行着色,以使模型更美观,立体感更强,而且在三维模型上用颜色也可以表达一定的信息。Matlab主要采用了三种着色技术,即索引着色、真彩色着色和纹理映射。本研究所采用的索引着色就是通过给每个数据点一个索引值来建立与图形颜色查找表之间的映射关系。颜色查找表是一个三列矩阵,分别定义为RGB分量,即红色、绿色和蓝色组分的强度。利用colormap函数可以设置颜色查找表,Matlab提供了autumn(从红色向橘黄色、黄色平滑过渡)、gray(从黑色向白色平滑过渡)、bone(含有较高的蓝色组分的gray颜色查找表)等已定义好的颜色查找表,结合颜色插值渲染函数shading interp一起使用,能使表面颜色过渡显得更加自然平滑。光照效果对于三维图形的逼真显示也极为重要,Matlab提供了三种光照算法,分别是刻面光照、Gouraud光照、Phong光照。刻面光照是在对象的每个小面上生成均匀的颜色,Gouraud光照是计算顶点处的颜色,然后插值计算整个小面上的颜色,Phong光照是在每个小面上进行顶点法向的插值,并计算每个像素的反射。经过比较发现,Phong光照对于角膜模型的效果最好。利用material函数可以设置模型表面的材质,该函数的五个参数分别用于设置环境光、漫反射光、镜面光的强度,以及对象的镜面反射指数和镜面反射光的颜色。另外,角膜本身是具有一定透明度的,且有前表面与后表面之分,Matlab的图形透明控制函数alpha能使构建的三维模型更显逼真[9]。经过真实质感渲染的角膜前表面三维模型如图1所示,角膜前、后表面整体三维模型如图2所示。

  除了构建具有真实质感的三维模型,Matlab的图形显示窗口还提供了照相机工具栏和图形编辑工具栏等交互工具,用户可以通过鼠标就能轻松地变换视角,或对图形进行缩放、平移、旋转和添加附属标记等操作。用户还可以通过编程的方式增加更多的交互信息。例如,角膜表面各点的曲率半径是一个重要的指标,我们可以利用数据光标模式函数datacursormode将曲率半径计算并显示出来。图3所示为角膜模型表面鼠标击中点的坐标值以及该点的曲率半径。

  3 讨论

  现代医学十分重视医学信息的可视化,三维图像绘制技术是利用计算机对人体器官、软组织等进行显示和分析的有效工具,它不仅提高了医疗诊断的水平,而且还在手术规划与模拟、医学教育、医疗仪器设备的设计研制等领域中发挥着巨大作用。眼角膜三维数字图像模型的研究是推动眼科临床和基础研究的必要支持条件。本研究从近年关于国人眼角膜数学模型最新研究进展出发,抓住角膜的主要几何特征,采用Matlab开发工具构建角膜三维图像模型。与采用Visual C++或ANSYS开发模型的方法比较,本研究的方法简单高效、形象直观、易于被非计算机专业人员掌握;与采用3DMax、Maya等工具开发模型的方法比较,本研究的方法又具有指令表达明确、科学计算精度高、参数设置灵活度高、容易与外部应用程序或语言集成等优点。总之,在Matlab平台上构建角膜三维图像模型的方法为创建各种群体角膜的图像模型“档案”提供了一种简便、高效的途径。

  【参考文献】

  [1] 张艳玲. 正常成人角膜数学模型的探讨[D]. 杭州:浙江大学,2004.

  [2] 唐聪恺. 基于有限元的三维角膜构建及其生物力学分析[D]. 厦门:厦门大学,2006.

  [3] Baker TY. Ray tracing through non-spherical surface[J] . Proc Phys Soc,1943,55:361-364.

  [4] Mandell RB. Mathematical model of the corneal contour[J]. Br J Physiol Opt,1971,27:183-197.

  [5] Bennett AG, Rabbetts RB. What radius does the convential keratometer measure?[J]. Ophthal Physiol Opt,1991,11(3):239-247.

  [6] Gatinel D, Haouat M, Hoang-Xuan T. A Review of mathematical descriptors of corneal asphericity[J]. J Fr Ophtalmol,2002,25(1):81-90.

  [7] 施明光,王波. 正常国人全角膜数字模型的建立[J],中华眼科杂志,2007,43(8):694-697.

  [8] The MathWorks Inc. MATLAB帮助手册[EB/OL], http://www.pudn.com/downloads160/ebook/detail717899.html,2008-06-17.

  [9] 苏金明,王永利. MATLAB图形图像[M]. 北京:电子工业出版社,2005:70-88.

医思倍微信
医思倍移动端
医思倍小程序