程序流图:
生成 128 的
图片信息
输 入 图 片 数 字
选择
对图片信息进行预处
理,并进行展示
用函数fanbeam进行映
射,得到扇束的数据,并
展示
用函数ifanbeam根据扇
束投影数据重建图像,并
展示
计算重建图像和原图的
性噪比,并进行输出
结束
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,是从扇束顶点到旋转
中心的像素距离。
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);
%根据扇束投影数据F2及D等数据重建
图像
figure, imshow(Ifan2) %创建窗口,并展示图片Ifan2
disp('图二和原图的性噪比为:');
result=psnr1(Ifan2,P);
title('图二');
Ifan3 = ifanbeam(F3,D, ...
'FanSensorSpacing',dsensor3,'OutputSize',output_size);
%根据扇束投影数据F3及D等数据重建
图像
figure, imshow(Ifan3) %创建窗口,并展示图片Ifan3
title('图三');
disp('图三和原图的性噪比为:');
result=psnr1(Ifan3,P);
function [p,ellipse]=phantom3d(varargin)
%PHANTOM3D Three-dimensional analogue of MATLAB Shepp-Logan phantom
% P = PHANTOM3D(DEF,N) generates a 3D head phantom that can
% be used to test 3-D reconstruction algorithms.
%
% DEF is a string that specifies the type of head phantom to generate.
% Valid values are:
%
% 'Shepp-Logan' A test image used widely by researchers in
% tomography
% 'Modified Shepp-Logan' (default) A variant of the Shepp-Logan phantom
% in which the contrast is improved for better
% visual perception.
%
% N is a scalar that specifies the grid size of P.
% If you omit the argument, N defaults to 64.
%
% P = PHANTOM3D(E,N) generates a user-defined phantom, where each row
% of the matrix E specifies an ellipsoid in the image. E has ten columns,
% with each column containing a different parameter for the ellipsoids: