地理与生物信息学院 2011 / 2012 学 年 第 二 学 期 实 验 报 告 课程名称: 医学图像处理和成像技术 实验名称:CT 反投影滤波重建算法设计 班 级 学 号: B******** 学 生 姓 名: **** 指 导 教 师: **** 日 期: 2012 年 4 月 2 一、实验题目:CT 反投影滤波重建算法设计 二、实验内容: 1.显示图像; 2.获得仿真投影数据; 3.基于获得的仿真投影数据重建图像。 三、实验要求: 1. 画出Shepp-Logan 头模型,显示尺寸为128×128; 2. 从头模型中获得投影数据,投影数据格式为180×185; 3. 基于获得的仿真投影数据重建图像,使用 R-L 卷积函数,重建 尺寸为128×128。 四、实验过程: 1. 显示图像: ①算法实现流程: I. S-L 头模型由 10 个位置、大小、方向、密度各异的椭圆组成,象征一个脑断层图像。将模型中的椭圆参数写入一个 p 矩阵中,方便使用其中的数据,并设定所需参数。 II. 使用循环语句给像素赋值: for i=1:10 for x… . for y… .. 判断点(x , y )是否在第 i 个椭圆内; 3 如是,则将第i 个椭圆折射指数赋给点(x, y); end end end III. 显示仿真头模型,使用imshow(f,[])函数显示出图像。 ②实验代码: clear all; p=[0 0 0.92 0.69 pi/2 1 0 -0.0184 0.874 0.6624 pi/2 2 0.22 0 0.31 0.11 72/180*pi 0 -0.22 0 0.41 0.16 108/180*pi 4 0 0.35 0.25 0.21 pi/2 5 0 0.1 0.046 0.046 0 6 0 -0.1 0.046 0.046 0 7 -0.08 -0.605 0.046 0.023 0 8 0 -0.605 0.023 0.023 0 8 0.06 -0.605 0.046 0.023 pi/2 8]; N=256; x=linspace(-1,1,N); y=linspace(-1,1,N); f=zeros(N,N); for i=1:N for j=1:N for k=1:10 A=p(k,3); B=p(k,4); x0=p(k,1); y0=p(k,2); x1=(x(i)-x0)*cos(p(k,5))+(y(j)-y0)*sin(p(k,5)); y1=-(x(i)-x0)*sin(p(k,5))+(y(j)-y0)*cos(p(k,5)); if((x1*x1)/(A*A)+(y1*y1)/(B*B)<=1) %判断条件 f(i,j)=p(k,6); end end end end f=rot90(f); imshow(f,[]) 4 ③运行结果: 2. 获得仿真投影数据: ①算法实现流程: I. 取θ∈ [00, 10, ..., 1790], s∈[-92, -91, ..., 91,92],即表示在[0 1790]范围内角度每隔 10 度取样,每个角度下有 185 个探测器。 II. 对于第 i 个椭圆求出对应θ和 s 的仿真投影数据...