📄 ch4_4_1.m
字号:
%映射和重建
%产生测试图像并显示
P = phantom(256);
imshow(P)
%计算投影数据
%设定几何关系为“线形”,分别给定光束数目为18,36和90。
theta1 = 0:10:170;
[R1,xp] = radon(P,theta1);
num_angles_R1 = size(R1,2)% num_angles_R1 = 18
theta2 = 0:5:175;
[R2,xp] = radon(P,theta2);
num_angles_R2 = size(R2,2)% num_angles_R1 = 36
theta3 = 0:2:178;
[R3,xp] = radon(P,theta3);
num_angles_R3 = size(R3,2) % num_angles_R1 = 90
%设定几何关系为“弧度”,分别给定光束密度为2弧度、1弧度以及0.25弧度。
D = 250;
dsensor1 = 2;
F1 = fanbeam(P,D,'FanSensorSpacing',dsensor1);
dsensor2 = 1;
F2 = fanbeam(P,D,'FanSensorSpacing',dsensor2);
dsensor3 = 0.25
[F3, sensor_pos3, fan_rot_angles3] = fanbeam(P,D,...
'FanSensorSpacing',dsensor3);
%显示投影数据
%几何关系为“线形”
figure, imagesc(theta3,xp,R3)
colormap(hot)
colorbar
xlabel('Parallel Rotation Angle - \theta (degrees)');
ylabel('Parallel Sensor Position - x\prime (pixels)');
%几何关系为“弧度”
figure, imagesc(fan_rot_angles3, sensor_pos3, F3)
colormap(hot); colorbar
xlabel('Fan Rotation Angle (degrees)')
ylabel('Fan Sensor Position (degrees)')
%重建图像
%几何关系为“线形”
dtheta1 = theta1(2) - theta1(1);
I1 = iradon(R1,dtheta1,output_size);
figure, imshow(I1)
dtheta2 = theta2(2) - theta2(1);
I2 = iradon(R2,dtheta2,output_size);
figure, imshow(I2)
dtheta3 = theta3(2) - theta3(1);
I3 = iradon(R3,dtheta3,output_size);
figure, imshow(I3)
%几何关系为“弧度”
output_size = max(size(P));
Ifan1 = ifanbeam(F1,D, 'FanSensorSpacing',dsensor1,…
'OutputSize',output_size);
figure, imshow(Ifan1)
Ifan2 = ifanbeam(F2,D, 'FanSensorSpacing',dsensor2,…
'OutputSize',output_size);
figure, imshow(Ifan2)
Ifan3 = ifanbeam(F3,D, 'FanSensorSpacing',dsensor3,…
'OutputSize',output_size);
figure, imshow(Ifan3)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -