医学影像系统实验PART II部分报告 U201012579 生医1002班刘志 - 图文 联系客服

发布时间 : 星期四 文章医学影像系统实验PART II部分报告 U201012579 生医1002班刘志 - 图文更新完毕开始阅读2d2f116aa26925c52cc5bfad

医学影像系统实验PART II部分报告

专 业:生物医学工程 姓 名:刘志 学 号:U201012579 班 级:1002班

邮 箱:642119623@qq.com 指导老师:张日欣(老师) 完成时间:2013年6月23号

实验一 CT投影数据采集、反投影重建实验

一、实验目的:

1. 用Matlab实现模拟CT投影数据采集、反投影重建; 2. 掌握反投影重建的方法步骤;

3. 掌握Matlab进行模拟CT图像重建方法。

二、实验器材与设备:

计算机或图形工作站、Matlab 6.5软件。

三、实验方法与步骤:

(1)Matlab的Image processing工具箱中有radon、iradon和fanbeam、ifanbeam两组函数,可以分别进行对图像和体模的投影数据采集和反投影重建。 ?其中radon、iradon是对对象进行平行直线束投影重建。

?Fanbeam、ifanbeam是进行扇型束投影重建,函数提供多种参数选择,如:图像和体模的灰阶,投影角度间隔,重建图像的矩阵等。

(2)本实验采用matlab 7.0版进行实验操作,选取shepp-logan图像,进行两种投影实验,获得投影数据图像和重建图像。函数的具体功能可参看相关M文件。

四、实验要求:

1.注释实验中各步骤命令。

2.记录获得的各步影像,分析函数所用的重建方法。

3.观察投影数据和重建图线,比较重建效果和伪影对图像的影响。

4.在实验各步骤中尝试选用其他参数,比较实验结果(如何提高投影和重建图像的精度)。 5.选用shepp_logan体模或自己采集一幅CT图像,进行实验。

五、实验结果显示及其分析:

在m文件中输入如下程序代码:(对对象进行平行直线束投影重建) clear %清楚工作空间的所有原有变量

P=phantom('Modified Shepp-Logan',256);%使用函数得到修改后的体模图像 imshow(P);%显示体模图像

title('Shepp-Logan体模图像');%对图像进行主题标明

imwrite(P,'C:\\MATLAB7\\work\\shepp-logan.png');%将体模图像写入到自定义的路径文件夹里进行保存

%对对象进行平行直线束投影重建%

CT=imread('shepp-logan.png');%读入一个图像扩展名为shepp-logan.png的图像,并将其图像矩阵赋给变量CT

figure;imshow(CT);%显示该CT图像

title('CT-Shepp-Logan体模图像');%对图像进行主题标明

thetal1=0:10:170;%定义一个thetal角度变量,其范围为0-170度,步长为10度 thetal2=0:5:170;%定义一个theta2角度变量,其范围为0-170度,步长为5度 [R1,Xp1]=radon(CT,thetal1);%对该CT图像进行rason变换,得到投影数据1 [R2,Xp2]=radon(CT,thetal2);%对该CT图像进行rason变换,得到投影数据2 Num_angles_R1=size(R1,2);%取矩阵R1的列数 Num_angles_R2=size(R2,2);%取矩阵R2的列数 N_R1=size(R1,1);%取矩阵R1的行数 N_R2=size(R2,1);%取矩阵R2的行数

Output_size=max(size(CT));%取CT图像矩阵中行数与列数两者的最大值 figure;imagesc(thetal1,Xp1,R1);%显示该投影数据图像1

title('用平行直线束投影所得到的投影数据图像1(thetal1=0:10:170)');%对图像进行主题标明 figure;imagesc(thetal2,Xp2,R2);%显示该投影数据图像2

title('用平行直线束投影所得到的投影数据图像2(thetal2=0:5:170)');%对图像进行主题标明 Dthetal1=thetal1(2)-thetal1(1);%定义反变换1的步长 Dthetal2=thetal2(2)-thetal2(1);%定义反变换2的步长

I1=iradon(R1,Dthetal1,Output_size);%对图像数据1进行radon反变换 I2=iradon(R2,Dthetal2,Output_size);%对图像数据2进行radon反变换 figure;imshow(uint8(I1));%显示重建后的图像1

title('用平行直线束投影所重建的图像1(thetal1=0:10:170)');%对图像进行主题标明 figure;imshow(uint8(I2));%显示重建后的图像2

title('用平行直线束投影所重建的图像2(thetal1=0:5:170)');%对图像进行主题标明

%对对象进行扇型束投影重建%

D=285;%将D赋值为285,表示从扇束顶点到旋转中心的像素 dsensor1=0.5;%正实数指定扇束传感器的间距为0.5 dsensor2=1;%正实数指定扇束传感器的间距为1 dsensor3=2;%正实数指定扇束传感器的间距为2 F1=fanbeam(CT,D,'FanSensorSpacing',dsensor1); %对CT图像进行fanbeam变换,得到投影数据1 F2=fanbeam(CT,D,'FanSensorSpacing',dsensor2); %对CT图像进行fanbeam变换,得到投影数据2 F3=fanbeam(CT,D,'FanSensorSpacing',dsensor3); %对CT图像进行fanbeam变换,得到投影数据3

[F1,sensor_pos1,fan_rot_angles1]=fanbeam(CT,D,'FanSensorSpacing',dsensor1);%对CT图像进行fanbeam变换,并得到扇束传感器的位置sensor_pos1和旋转角度fan_rot_angles1

[F2,sensor_pos2,fan_rot_angles2]=fanbeam(CT,D,'FanSensorSpacing',dsensor2);%对CT图像进行fanbeam变换,并得到扇束传感器的位置sensor_pos2和旋转角度fan_rot_angles2

[F3,sensor_pos3,fan_rot_angles3]=fanbeam(CT,D,'FanSensorSpacing',dsensor3);%对CT图像进行fanbeam变换,并得到扇束传感器的位置sensor_pos3和旋转角度fan_rot_angles3

figure;imagesc(fan_rot_angles1,sensor_pos1,F1);%根据计算出的位置和角度展示F1的图像 colormap(hot);%设置色图为hot colorbar;%显示色栏

xlabel('Fan Rotation angle(degress)');%标注x轴 ylabel('Fan Sensor Position(deress)');%标注y轴

title('用扇型束投影所得到的投影数据图像1(dsensor1=0.5)');%对图像进行主题标明

figure;imagesc(fan_rot_angles2,sensor_pos2,F2);%根据计算出的位置和角度展示F2的图像 colormap(hot);%设置色图为hot colorbar;%显示色栏

xlabel('Fan Rotation angle(degress)');%标注x轴 ylabel('Fan Sensor Position(deress)');%标注y轴

title('用扇型束投影所得到的投影数据图像2(dsensor1=1)');%对图像进行主题标明

figure;imagesc(fan_rot_angles3,sensor_pos3,F3);%根据计算出的位置和角度展示F3的图像

colormap(hot);%设置色图为hot colorbar;%显示色栏

xlabel('Fan Rotation angle(degress)');%标注x轴 ylabel('Fan Sensor Position(deress)');%标注xy轴

title('用扇型束投影所得到的投影数据图像3(dsensor1=2)');%对图像进行主题标明 output_size=max(size(CT));%得到图像CT维数的最大值,并赋值给变量output_size Ifan1=ifanbeam(F1,D,'FanSensorSpacing',dsensor1,'Outputsize',output_size); %根据扇束投影数据F1及D,desensor1重建图像1

Ifan2=ifanbeam(F2,D,'FanSensorSpacing',dsensor2,'Outputsize',output_size); %根据扇束投影数据F2及D,desensor2重建图像2

Ifan3=ifanbeam(F3,D,'FanSensorSpacing',dsensor3,'Outputsize',output_size); %根据扇束投影数据F3及D,desensor3重建图像3 figure;imshow(uint8(Ifan1));%显示重建图像1

title('用扇型束投影所重建的图像1(dsensor1=0.5)');%对图像进行主题标明 figure;imshow(uint8(Ifan2));%显示重建图像2

title('用扇型束投影所重建的图像2(dsensor1=1)');%对图像进行主题标明 figure;imshow(uint8(Ifan3));%显示重建图像3

title('用扇型束投影所重建的图像3(dsensor1=2)');%对图像进行主题标明 (1)见上述代码,均已做了注释。

(2)运行上述代码,得到的图像如下所示:

图1