三维血管的重建
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
血管的三维重建
摘要
对于血管的三维重建,本文研究了血管这一类特殊管道的中轴线及其半径的算法,绘制中轴线在XY 、YZ 、ZX 平面的投影图这些问题,问题分为三部分。
针对第一部分,先将100张切片图片在MATLAB 中导出生成0-1矩阵数据,在计算100张切片的最大内切圆半径及对应圆心坐标,为减小误差求100张切片最大内切圆的平均半径41666.29 d 。中轴线的曲线方程可在MATLAB 中拟合得到。
针对第二部分,得到中轴线曲线方程在MATLAB 中绘制出中轴线方程的空间曲线,之后将其投影在XY 、YZ 、ZX 平面上。
针对第三部分,对100张切片进行叠加重合,得到血管的三维立体图,再通过MATLAB 对血管的三维立体图进行优化完成血管的三维重建。
关键词:MATLAB 软件
管道半径中轴线曲线方程
一、问题重述
1.1基本情况
断面可用于了解生物组织、器官等的形态。如果用切片机连续不断地将样本切成数十、成百的平行切片,可依次逐片观察。根据拍照并采样得到的平行切片数字图象,运用计算机可重建组织、器官等准确的三维形态。
1.2相关信息
假设某些血管可视为一类特殊的管道,该管道的表面是由球心沿着某一曲线(称为中轴线)的球滚动包络而成。
现有某管道的相继100张平行切片图象,记录了管道与切片的交。图象文件名依次为0.bmp、1.bmp、…、99.bmp,格式均为BMP,宽、高均为512个象素(pixel)。
取坐标系的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)。
1.3提出的问题
问题一:计算出管道的中轴线与半径,给出具体的算法。
问题二:绘制中轴线在XY、YZ、ZX平面的投影图。
问题三:绘制血管的三维重建立体图。
二、问题分析
血管可视为一类特殊的管道,该管道的表面是由球心沿着某一曲线(称为中轴线)的球滚动包络而成。那么求管道半径问题可转化为求每张切片最大内切圆半径问题,中轴线曲线方程的模型建立可用问题一中求出的数据在MATLAB中拟合得到,题中所要求绘制的图像可通过MATLAB绘制得到。
针对问题一,因为血管可视为一种特殊的管道,管道的表面是由球心沿某一中轴线的球滚动包络,因此过球心的截圆半径就是血管半径,即为切片中包含的最大内切圆半径,再取100个最大内切圆半径平均值以缩小误差。首先将100张图片通过MATLAB导入将其转化为512×512的二维0-1矩阵,并运用MATLAB 中的edge函数求出边界。在第k张切片中,求出任意内点到边界上所有点的最小距离,在这些最小距离中取最大值,最大值即为最大内切圆半径,对应的内点即为每个切片的最大内切圆的圆心。对于中轴线的求解,上述问题分析可分别求出100张切片最大内切圆的圆心坐标及半径,为简化方程设t为参数变量,通过MATLAB拟合工具箱进行曲线拟合可以的到关于参数t的中轴线曲线方程。
针对问题二,基于问题一的基础上,通过MATLAB中拟合工具画出中轴线在的三维图像[1],将其投影在XY、YZ、ZX平面上。
针对问题三,在MATLAB中用拟合工具将100张切片图像进行叠加重合,绘制出血管的三维图像,再用拟合工具进行优化还原得到血管的拟合还原图。
三、模型的假设
结合本题实际,为了确保模型求解的准确性和合理性,我们排除了一些因素的干扰,提出以下几点假设:
1.管道中轴线与每张切片有且只有一个交点。
2.球半径固定;切片间距以及图象象素的尺寸均为1。
3.假设某些血管可视为一类特殊的管道,该管道的表面是由球心沿着某一曲线(称为中轴线)的球滚动包络而成。
4.所有数据均是准确的,根据像素能够近似的画出图形。
5.对切片的拍照过程中不存在误差。
6.中轴线上任意两点处的法截面圆不相交。
四、符号说明
符号符号说明
d任意内点到边界点的距离
d100张切片最大内切圆半径平均值
dd最大内切圆半径
d第k张切片
k
X中轴线在X轴的参数方程
)(t
Y中轴线在Y轴的参数方程
)(t
Z中轴线在Z轴的参数方程
T中轴线参数方程
五、模型的建立与求解
通过建立数学模型求解出每张切片的最大内切圆半径,并得出最大内切圆的圆心坐标,借此拟合出血管中轴线的曲线方程,同时可绘制出中轴线在各坐标面上的投影,从而实现血管的三维重建。
5.1问题一
5.1.1血管半径的模型建立
题中将血管通过切片机切成100个平行切片,并给出这100张平行切片的二维平面图,这些平面图是由经过球心的球截面所截而得,其球截面是所有截圆中
半径最大的圆,半径最大圆的半径即为血管半径,再求出这100个最大内切圆半径的平均值以减小误差。
求切片的最大内切圆半径,要先找出切片内任意一点到切片边界距离最小值,在这些最小值中找到最大值,由此建出血管半径的模型。
第k 张切片图像第i 个内点))2,(),1,((i i nd 到第j 个边界点))2,(),1,((j j bjd 的距离:
)1())2,()2,(())1,()1,((2
2j bjd i nd j bjd i nd d -+-=利用MATLAB 软件得到图像的最大内切圆半径:
(2)
)
max(=]1,1[[],2),,min(=dd zb d d dd 为了减小误差,对100张切片的最大内切圆半径求平均值:
)
3(1001100
∑=k
K d d 5.1.2血管半径的求解
(1)首先将切片图像导入到MATLAB 中。
(2)提取切片图像的轮廓,并对图像进行处理,将图像像素点转化为512×512的矩阵[2]。
(3)将矩阵数值导入求切片图像内切圆的程序中。(4)对切片图像内切圆进行筛选,得到最大值。(5)将最大内切圆的半径和圆心的坐标记录下来。
表一:部分切片的最大内切圆的半径和圆心的坐标
X Y Z 半径-1601129.06888-1600228.28427-1602329.01724-1602429.06888-1602529.06888-1602629.06888-160
1
7
29.00000