网站大量收购闲置独家精品文档,联系QQ:2885784924

血管的三维重建.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*MATHEMATICAMODEL制作:龚劬血管三维重建的问题断面可用于了解生物组织、器官等的形态。例如,将样本染色后切成厚约1mm的切片,在显微镜下观察该横断面的组织形态结构。如果用切片机连续不断地将样本切成数十、成百的平行切片,可依次逐片观察。根据拍照并采样得到的平行切片数字图象,运用计算机可重建组织、器官等准确的三维形态。假设某些血管可视为一类特殊的管道,该管道的表面是由球心沿着某一曲线(称为中轴线)的球滚动包络而成。例如圆柱就是这样一种管道,其中轴线为直线,由半径固定的球滚动包络形成。现有某管道的相继100张平行切片图象,记录了管道与切片的交。010302问题重述问题重述为简化,假设:管道中轴线与每张切片有且只有一个交点;球半径固定;切片间距以及图象象素的尺寸均为1。取坐标系的Z轴垂直于切片,第1张切片为平面Z=0,第100张切片为平面Z=99。Z=z切片图象中象素的坐标依它们在文件中出现的前后次序为(-256,-256,z),(-256,-255,z),…(-256,255,z),(-255,-256,z),(-255,-255,z),…(-255,255,z)……(255,-256,z),(255,-255,z),…(255,255,z)。试计算管道的中轴线与半径,给出具体的算法,并绘制中轴线在XY、YZ、ZX平面的投影图。Z=1Z=0Z=49Z=50Z=99Z=98血管的表面是由半径固定、球心沿着某一曲线(称为中轴线)的球滚动而形成的包络面。中轴线上任两点处的法截面圆不相交。管道中轴线与每张切片平面有且只有一个交点。假设图象的矩阵表示二值图象的象素矩阵为0-1矩阵,矩阵横纵坐标对应原图象的直角坐标系位置,0和1分别代表该位置上的黑或白象素。问题分析将管道看成是小球运动包络形成的,则管道的切片便是滚动的小球在平面z上的截圆形成的包络。-30-25-20-15-10-5051015-20-1001020小球沿螺旋线滚动时,在某平面上的截圆形成包络。问题分析解决问题的关键在于发现定理:在一条粗细均匀血管的任何横截面的图象内,其包含的最大内切圆的圆心位于中轴线上,该圆的半径等于滚动球的半径。基于:球的任意截面都是圆经过球心的球截面是所有截圆当中半径最大的圆建模方法思想求滚动球半径r的方法平均法抽样法极大似然法叠加法求出的半径在5?30.5之间,为什么?建模方法思想需考虑的细节:如何读入一个数字图象,即如何由bmp图象文件(或其它格式的图象文件)得到象素矩阵?MATLAB函数imread():m=imread(‘0.bmp’)或把图象序列转换为三维数组forb=0:99m(:,:,b+1)=imread([int2str(b),.bmp]);end建模方法思想需考虑的细节:何谓边界点?四邻域的概念找边界点坐标的算法也可用MATLAB函数:edge()如:m=imread(‘0.bmp’);bw=edge(m,‘sobel’)最大内切圆的圆心和半径须取小数和整数有区别吗?取整方法:四舍五入(round),向上取整(ceil),向下取整(floor)5)如何由切片图叠合作出血管的立体图?方法1:利用plot3()clearforb=0:99m1=imread([int2str(b),.bmp]);m(:,:,b+1)=edge(m1,sobel);endfork=0:99fori=1:512forj=1:512if(m(i,j,k+1)==1)plot3(i,j,k+1,b-.);holdonend,end,end,endrotate3d,holdoff如何由切片图叠合作出血管的立体图?方法1:利用plot3()方法2:利用patch()forb=0:99m(:,:,b+1)=[imread([int2str(b),.bmp],bmp)];endm1=m(1:4:512,1:4:512,:);fori=1:size(m1,1)forj=1:size(m1,2)fork=1:size(m1,3)ifm1(i,j,k)==0m1(i,j,k)=88;elsem1(i,j,k)=0;end,en

文档评论(0)

135****3907 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档