程序流图: MATLAB 源码: clc; clear all; close all; % load mri %载入mri数据,是matlab自带库 % ph = squeeze(D); %压缩载入的数据D,并赋值给ph ph = phantom3d(128); prompt={'Enter the Piece num(1 to 128):'}; %提示信息“输入1到27的片的数字” name='Input number'; %弹出框名称 defaultanswer={'1'}; %默认数字 numInput=inputdlg(prompt,name,1,defaultanswer) %弹出框,并得到用户的输入信息 P= squeeze(ph(:,:,str2num(cell2mat(numInput))));%将用户的输入信息转换成数字,并从ph中得到相应的片信息P imshow(P) %展示图片P D = 250; %将D赋值为250,是从扇束顶点到旋转中心的像素距离。 生成 128 的图片信息 输 入图片 数字选择 对图片信息进行预处理,并进行展示 用函数fanbeam进行映射,得到扇束的数据,并展示 用函数ifanbeam根据扇束投影数据重建图像,并展示 计算重建图像和原图的性噪比,并进行输出 结束 dsensor1 = 2; %正实数指定扇束传感器的间距2 F1 = fanbeam(P,D,'FanSensorSpacing',dsensor1); %通过P,D等计算扇束的数据值 dsensor2 = 1; %正实数指定扇束传感器的间距1 F2 = fanbeam(P,D,'FanSensorSpacing',dsensor2); %通过P,D等计算扇束的数据值 dsensor3 = 0.25 %正实数指定扇束传感器的间距0.25 [F3, sensor_pos3, fan_rot_angles3] = fanbeam(P,D,... 'FanSensorSpacing',dsensor3); %通过P,D等计算扇束的数据值,并得到扇束传感器的位置sensor_pos3和旋转角度fan_rot_angles3 figure, %创建窗口 imagesc(fan_rot_angles3, sensor_pos3, F3) %根据计算出的位置和角度展示F3的图片 colormap(hot); %设置色图为hot colorbar; %显示色栏 xlabel('Fan Rotation Angle (degrees)') %定义x坐标轴 ylabel('Fan Sensor Position (degrees)') %定义y坐标轴 output_size = max(size(P)); %得到P维数的最大值,并赋值给output_size Ifan1 = ifanbeam(F1,D, ... 'FanSensorSpacing',dsensor1,'OutputSize',output_size); %根据扇束投影数据F1及D等数据重建图像 figure, imshow(Ifan1) %创建窗口,并展示图片Ifan1 title('图一'); disp('图一和原图的性噪比为:'); result=psnr1(Ifan1,P); Ifan2 = ifanbeam(F2,D, ... 'FanSensorSpacing',dsensor2,'OutputSize',output_size); %根据扇束投影...