高教社杯全国大学生数学建模竞赛题目.docx

上传人:b****3 文档编号:1110850 上传时间:2022-10-17 格式:DOCX 页数:8 大小:65.79KB
下载 相关 举报
高教社杯全国大学生数学建模竞赛题目.docx_第1页
第1页 / 共8页
高教社杯全国大学生数学建模竞赛题目.docx_第2页
第2页 / 共8页
高教社杯全国大学生数学建模竞赛题目.docx_第3页
第3页 / 共8页
高教社杯全国大学生数学建模竞赛题目.docx_第4页
第4页 / 共8页
高教社杯全国大学生数学建模竞赛题目.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

高教社杯全国大学生数学建模竞赛题目.docx

《高教社杯全国大学生数学建模竞赛题目.docx》由会员分享,可在线阅读,更多相关《高教社杯全国大学生数学建模竞赛题目.docx(8页珍藏版)》请在冰豆网上搜索。

高教社杯全国大学生数学建模竞赛题目.docx

高教社杯全国大学生数学建模竞赛题目

2015江西财经大学数学建模竞赛

A题

旋转式CT扫描还原

 

参赛队员:

滕翔、崔航、康珑耀

参赛队编号:

2015051

 

2015年5月22日~5月27日

 

2015江西财经大学数学建模竞赛

承诺书

我们仔细阅读了江西财经大学数学建模竞赛的竞赛章程。

我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人研究、讨论与赛题有关的问题。

我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。

如有违反竞赛规则的行为,我们将受到严肃处理。

我们参赛选择的题号是(从A/B/C中选择一项填写):

A

我们的参赛队编号为2015051

参赛队员(打印并签名):

队员1.姓名滕翔专业班级计算机科学与技术121

队员2.姓名崔航专业班级计算机科学与技术121

队员3.姓名康珑耀专业班级计算机科学与技术121

日期:

2015年5月27日

 

2015江西财经大学数学建模竞赛

编号和阅卷专用页

参赛队编号:

2015051

参赛队员填写

参赛队

员姓名

所有数学类与计算机类课程成绩

(意愿参加全国竞赛者填写)

是否选修建模课程

是否愿参加全国竞赛

在校获

奖项目

滕翔

崔航

康珑耀

阅卷填写,参赛者不得填写

评分(百分制)

评阅人

最终得分

小组评价负责人

阅卷

专家

评语

 

备注

1、是否选修数学建模:

指本学期是否选修了数学建模课程

2、是否有意愿参加全国竞赛:

指参加今年的全国大学生数学建模竞赛,一经选定,不得退赛,否则将建议学生所在学院给予处分。

培训时间:

2013年8月5日开始。

江西财经大学数学建模竞赛组委会

2015年5月15日制定

旋转式透视图片还原

摘要

利用图像灰度还原提取血管进行三维建模,然后利用切线定点拟合出中轴,并得到半径数据。

一、问题重述

透视是医学上一种观察人体内部器官的技术,常见的是平面透视,一般只能得到一种人体内部组织的平面图片。

旋转式透视是一种新的医学技术,通过旋转放射源,得到不同角度的若干张图片,以提供给医疗诊断,增加诊断效果。

附件是对头部血管进行透视得到的147张旋转式透视图片,每次旋转1度进行透视,得到一张血管图片,图片连续编号。

请建立模型计算最粗的那根血管的中轴线和血管半径的变化规律。

二、模型的基本假设

1、附件中照片都是同标准拍摄。

2、血管的横截面基本是圆。

3、人体头部中心到放射源和感光片的距离相等。

三、问题分析

扫描物件围绕某一固定转轴旋转,每隔一定角度采集一张图像,然后根据采集的图像采用3D图像重建算法即可将原始3D物件重建出来。

在实际中,由X射线源发出X射线,经过扫描物体衰减后照射在探测器上,探测器根据接收到的光子数的计数实现光电转换,从而形成灰度图像。

一般平板探测器大小为3000×2000像素,每个像素为0.127mm。

 

在CT系统安装过程中往往存在机械误差,而这些误差对于物件重建的准确性往往是致关重要的,实际中就需要对安装好的CT系统进行参数标定,系统参数主要包括X射线源的位置、载物中心线的位置和探测器的位置参数等。

传统的方法是采用尺子测量法,对于CT系统参数标定精度要求是不够的(通常CT重建过程中系统参数的机械误差不允许超过一个像素)。

目前,一般通过实验的方法实现参数标定。

所谓实验的方法标定参数就是通过扫描已知参数的体模,分析投影数据,估计系统参数的方法。

对于图像的融合关键问题在于将多幅图像中的对应信息进行匹配、对齐,所以对于图像中特征的提取是图像融合要解决的主要问题。

对于轮廓的提取可分为图片的预处理、阈值化处理(细化处理)、轮廓的跟踪提取几步。

对于附件的149张每次旋转1度所得到的人脑CT截面图,应该先将其血管轮廓数据提取出来,将血管进行三维重建,然后。

 

四、建模过程

1)血管数据提取

1、图片预处理

采用148张BMP格式500×500的256灰度CT图片作为研究对象。

对于一个物体往往通过其轮廓就可达到识别的目的,因此本文采用边缘作为识别对象。

对于图像中反映出来的边缘特征,在灰度图片中实际上就是周围像素灰度值阶跃性的变化。

在CT图像中,骨骼作为图片中的高亮区和软组织结构之间的灰度值存在明显的跳变,而对于骨骼内部、软组织内部纹理特征灰度值变化相对平缓,所以可采用边缘检测算子对外部轮廓以及内部软组织进行处理。

选用的是经典的Roberts算子,对CT图像进行边缘检测,其边缘检测算子为

其中:

I(x,y)为像素点在i,j处的灰度值;g(i,j)为算子处理后的灰度值

I(i,j)

I(i,j+1)

I(i+1,j)

I(i+1,j+1)

在VC6.0编程实现核心代码

pixel[0]=(unsignedchar)*

lpSrcource;pixel[1]=(unsignedchar)*

(lpSrcource+1);

pixel[2]=(unsignedchar)*

(lpSrcource-lWidth);

pixel[3]=(unsignedchar)

*

(lpSrcource

-lWidth+1);

result=sqrt((pixel[0]-pixel[3])*

(pixel

[0]-pixel[3])+(pixel[1]-pixel[2])

*

(pixel[1]-pixel[2]))

2、阈值、细化处理

经边缘检测后,得到灰度分布情况,对其进行阈值处理,为保证边缘的连续性和简化轮廓跟踪过程,对边缘图像进行阈值处理(取阈值为254)

其中H(x)代表灰度分布函数,x为像素点的灰度值。

将白色以外的灰度均设为黑色,处理后,同时为了降低在进行轮廓的提取过程中对冗余信息计算,对图像进行细化处理。

3、轮廓提取

此CT图片中不同组织间灰度差别较大,经过阈值和细化处理后轮廓特征明显且为连续封闭轮廓,为了减少计算量,避免在轮廓提取过程中对每一个像素点进行计算,采用轮廓跟踪算法。

轮廓跟踪算法的跟踪准则为:

从图片起始点,定义搜索方向为左上方(BMP图像的读图顺序从左下角开始),开始搜索,当检测到相对于起始点的第一个边缘点(灰度值为0)开始按定义的搜索方向进行下一边缘点的搜索。

如果左上方是黑点则定义为边缘点,如果不是黑点则按所取方向顺时针旋转45度直到找到边缘点为止,然后再把边缘点在当前搜索的基础上逆时针旋转90度,继续用同样的方法搜索。

当搜索到下一点为起始点时,结束搜索。

以上的轮廓跟踪算法在应用于CT图片的轮廓提取时存在一定的问题:

(1)此算法每次搜索都从图像的左下角开始,因此只适用于提取的目标边界为最外层的边界,而且当目标边界左边存在伪边界时就不能准确检测需要的轮廓;

(2)当需要提取的为图像内部的某个轮廓时,该算法失效。

所以,该算法不能满足随意提取所需边缘的要求。

为满足从图像中提取任意边缘的要求,对该算法进行了改进—将搜索起始点作为函数参数,同时在原算法的基础上加入手工选择轮廓提取跟踪点的功能。

执行过程中用鼠标在屏幕中点选轮廓跟踪的起始点,并以起始点为参数传递给检测函数,开始搜索算法。

通过此法可达到根据需要从图片中有选择性地提取制定的边缘。

对于轮廓提取函数的说明如下:

前3个参数分别为目标处理图片的图像指针、宽度、高度,第4个为鼠标选定起始搜索点。

TraceEdge(原图像指针,原图像宽度,原图像高度,有鼠标在图像中选取的点)

{

for(j=m.-iStartXj

bStartPoint;j++){

//m-iStartX,m-iStar2tY为鼠标在屏幕中选取的坐标值

for(i=m.iStartY;i

bStartPoint;i++){

//指向源图像倒数第j行,第i个像素的指针并将起始点赋给变量StartPoint

}

}

while(!

bStartPoint)

{

//沿扫描方向查看一个像素

if(pixel=0)

{//像素为黑,根据搜索准则寻找下一点}

}

}

2)血管重建

将提取的血管轮廓在matlab中建立坐标。

(1) 重建数据的采集。

 

对现有的148幅提取出的血管CT图像数据进行三维数据集D的构造,得到的数据集D为一个x×y×n的矩阵。

 

image1 = imread('01.bmp');                  %使用imread( )函数读入现有的n幅图像 image2 = imread('02.bmp'); ﹕ ﹕ 

imagen = imread('n.bmp'); 

D=cat(3,image1,image2,image3,……imagen);  %使用cat( )函数创建三维矩阵D 

(2) 重建数据预处理 

采用上述方法构造的三维数据集D,数据量大,在体重建中速度慢,并且可能在计算中超出内存。

因而,可以根据实际情况,对数据集D进行预处理,减少数据量。

 

[x y z D] = reducevolume(D,[a b c]);          %使用reducevolume( )函数减少数据量,其中a,b,c为x,

y和z轴数据抽取的比例,根据数据情况自行定义。

 

D = smooth3(D);                          %使用smooth( )函数对数据进行平滑处理 

(3) 计算数据集在显示平面累计投影。

 

fv = isosurface(x,y,z,D,isovalue);             %使用isosurface( )函数计算数据集在显示平面累计投影,

isovalue根据实际情况自行定义 

(4) 构造三维体重建碎片 

p = patch(fv, FaceColor', 'yellow', 'EdgeColor', 'none'); %使用patch( )函数对碎片进行构造,并对图像的颜

色,光线进行定义,其中fv是第(3)步中得到的。

3)血管切片

 

4)血管中轴拟合——切线定点

血管的模型,可以拟作一个半径为R球,沿着一定的轨道(这个轨道就是血管的中轴)在行进过程中所覆盖的所有体积。

而R在行进过程中是会发生变化的。

在切面图形的边界上至少存在一对点,其法线方向重合,在所有满足条件的点中,距离最长的一对点即为血管的中轴线上的点,该点到切面边界的最小距离即是血管的半径。

先求曲线在M1处的法线,在切面Z上任取一点M1(x1,y1),并在曲线上取与M1相邻的一点M2(x2,y2),其中

|x2-x1|<=1,|y2-y1|<=1,

则=(x2-x1,y2-y1)

设曲线在M1处的法线方程为

由于法线与垂直于切线,所以

M(x2-x1)+n(y2-y1)=0

法线方程为

(x2-x1)(x-x1)+(y2-y1)(y-y1)=0

然后求相同法线的另一点,设点M0(x0,y0)为另一类边界点,点M0到法线的距离为

若存在M0(x0,y0)是的d=0,M0(x0,y0)与M1(x1,y1)即所求,若d0,则记录该d和M1M0,并另取一个M1点,重新计算如上的过程,直到满足要求为止,若最后所有的d0,则从中选取最小的d即可。

得到M1、M0后,计算器中心点O,即为中心轴线与切面Z的交点。

计算O到边界的最短距离,即为半径R

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1