血管的三维重建(一等奖)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
血管的三维重建
摘要
本文以血管的三维重建为研究对象,对100张平行切片图像进行分析,利用这些宽、高均为512象素的切片,计算管道的半径和确定中轴线方程,并在此基础上画出重建后的血管三维图像,主要内容如下:
对于问题一,计算管道的半径,由于血管表面是由球心沿着某一曲线(称为中轴线)的球滚动包络而成,可以得出结论:切片中包含的最大圆的半径即血管半径,所以问题转化为求每一切片上的最大内切圆的半径。为了便于计算,运用Matlab imread 函数,将BMP 格式文件转化为0-1矩阵,然后运用edge bwmorph 、函数确定轮廓和骨架的位置,并求解骨架上每一点到边缘的最短距离。这些最短距离中的最大值即为最大内切圆半径也就是血管半径。最后对所有的半径取平均值,得出结果:
100
()
1
=29.41666100
k k R
R ==
∑
对于问题二,根据问题一中求出的100个圆心坐标及半径求解中轴线方程,运用
Matlab 软件对圆心所形成的曲线进行n 阶多项式拟合。
为使中轴线较为光滑,在Matlab 拟合工具箱多次试验后,取最高阶次=7n 。由于z 轴值是逐层单调递增的,为简化方程的计算,取t 为参变量,分别对其投影在YZ 、ZX 平面上进行多项式拟合,最后得到中轴线在平面投影上拟合的曲线方程如下:
()()()-107-76-55432
-107-86-55-3432-3.2310 1.16910-1.628100.00108-0.035260.5706-3.105+5.243=3.06110-9.62310+1.3610-0.640610+0.01912-0.298+1.89-1.63.3=y t t t t t t t t f x t t t t t t t t z t t ⎧=⨯+⨯⨯+⎪+⎪⎪
=⨯⨯⨯⨯⎨⎪⎪
⎪⎩
最后根据方程画出中轴线图形,YZ YX ZX 、、平面的投影在拟合工具箱中可以直接得到。
对于问题三,根据问题一、二求出的中轴线的参数方程和100张切片的最大内切圆的半径,运用Matlab 软件画出血管的三维立体图。
关键词:血管半径 中轴线 Matlab 图像处理 三维重建
一、问题重述
1.1问题背景与条件
生物体的外部结构具有繁杂多样性,可以通过肉眼观察,但若想了解去内部错综复杂的结构,就需要借助一定的辅助工具,人们常利用的是分解和合成的方法。其中分解就是将生物体做成切片,而切片就是用一组等间距的平行平面将生物体中需要研究的部位切成簿薄的一片,每一片就是生物体某一横断面的图像,当人们需要了解生物体信息时,再采用合成的方法,利用切片信息重建原物体的三维形态。这种方法在医学和其他领域有着广泛的应用,如要将人体的组织、器官、血管等的三维信息,包含内部错综复杂的结构,完整地存储在计算机中,以现在的技术也是有一定难度的,但若改用存储切片信息,使用时重建再现的方法,则是利用现有技术可以解决的。本文为就在此背景下提出下面的问题。
1.2需要解决的问题
μ的断面可用于了解生物组织、器官等的形态。例如,将样本染色后切成厚约1m
切片,在显微镜下观察该横断面的组织形态结构。如果用切片机连续不断地将样本切成数十、成百的平行切片,可依次逐片观察。根据拍照并采样得到的平行切片数字图象,运用计算机可重建组织、器官等准确的三维形态。
假设某些血管可视为一类特殊的管道,该管道的表面是由球心沿着某一曲线(称为中轴线)的球滚动包络而成。例如圆柱就是这样一种管道,其中轴线为直线,由半径固定的球滚动包络形成。
现有某管道的相继100张平行切片图象,记录了管道与切片的交。图象文件名依次为0.bmp、1.bmp、…、99.bmp,格式均为BMP,宽、高均为512个象素(pixel)。为简化起见,假设:管道中轴线与每张切片有且只有一个交点;球半径固定;切片间距以及图象象素的尺寸均为1。
取坐标系的z轴垂直于切片,第1张切片为平面=0
z,第100张切片为平面=99
z。=切片图象中象素的坐标依它们在文件中出现的前后次序为:
Z z
()
-256,255,z,
-256,-255,z,…()
-256,-256,z,()
()
-255,255,z,
-255,-256,z,()
-255,-255,z,…()
……
()
255,-255,z,…()
255,255,z,
255,-256,z,()
问题一:计算管道的半径。
问题二:确定管道的中轴线方程及画出中轴线在XY YZ ZX
、、平面的投影图及三维立体图形。
问题三:根据中轴线及半径对血管进行三维重建。
二、模型假设
结合本题的实际,为了确保模型求解的准确性和合理性,我们排除了一些因素的干扰,提出以下几点假设:
1、所有数据均是准确的,根据像素能够近似地描绘出图形;
2、切片的厚度为一个像素;
3、将血管看作一类特殊的管道,不考虑血管的弹性,即血管的半径为一常数;
4、对切片拍照的过程中不存在误差,数据误差仅与切片数字图象的分辨率有关;
5、中轴线上任意两点处的法截面圆不相交。
三、符号说明
四、问题分析
血管可视为一类特殊的管道,该管道的表面是由球心沿着某一曲线(称为中轴线)的球滚动包络而成。本文的主要工作是求解管道的半径及中轴线方程,绘制中轴线在XY YZ ZX 、、平面的投影图并重建血管的三维图像。
对于问题一,要求解管道的半径。根据图片分析,除去图片“弯月”的两端之外,这一图形的宽度是保持不变的,这一宽度就是我们所要求的球的直径R 2。由于管道的表面是由球心沿着某一曲线(称为中轴线)的球滚动包络而成的,所以可以将问题转化为求球体的半径,也就是过球心的被截圆的半径。题目中只给出了100张管道的切面图,这些二维图形是由无穷多个球被截的圆叠加而成的,基于:1)球的任意截面都是圆;2)经过球心的球截面是所有截圆当中半径最大的圆;3)管道中轴线与每张切片有且只有一个交点,即为球心。所以每张切片的最大内切圆的圆心位于血管的中轴线上,该圆的半径等于血管半径,即问题就可以转化为求切片上最大内切圆的半径。首先,运用Matlab 读取图片,将BMP 格式文件转化为0-1矩阵,通过edge bwmorph 、函数确定轮廓和骨架的位置,通过循环不断搜索计算每张图中骨架上每一点到轮廓上每一点的最短距离,然后取最短距离中的最大值,即为最大内切圆的半径,最后对求出的100个最大内切圆半径取算数平均值减小误差,最后的值即为管道半径。
对于问题二,求中轴线,根据问题一中算出的100个最大内切圆半径和圆心坐标,运用Matlab 软件对所有圆心坐标所形成的曲线进行拟合,根据坐标所画出的散点图规律,采用n 阶多项式拟合方式。根据拟合出曲线的光滑度确定最高阶次n ,由于一个z 只对应于一个x 和一个y ,故可分别对其投影在YZ ZX 、平面上进行多项式拟合,求出方程)(1z f y =和)(2z f x y ==,则中轴线的空间方程即为上两式的联立便得到了血管管道的中轴线参数函数。根据拟合出的方程,画出中轴线在YZ YX ZX 、、平面的投影,拟合曲线及立体图形。
对于问题三,基于问题一、二的求解结果,根据中轴线的参数方程及滚动球的半径,我们运用Matlab 中的绘图工具,结合每张切片图的球心坐标与球的半径,得到血管的还原三维立体图形。
五、模型的建立与求解
经过以上的分析和准备,我们将逐步建立以下数学模型,进一步阐述模型的实际建
立过程。
5.1血管半径的计算 算法步骤:
1step :导入数据,运用Matlab 读取函数,转换存储方式;