资源简介
关于投影与反投影的在matlab代码中的运用,经供参考,谢谢。
代码片段和文件信息
clear all;
close all;
%% 获得原始图像、投影数据、以及直接反投影后的断层图像
p_N = 256;
theta_N = 180;
pad_N = 1024;
P = phantom(p_N);
theta = 0:(theta_N-1);
[Rxp] = radon(Ptheta);
[I H] = iradon(Rtheta‘linear‘‘none‘); % iradon变换,不滤波,则I就是直接反投影后的断层图像
row_pad = pad_N;
row_I = size(I1);
row_start = (row_pad-row_I)/2;
fb = zeros(row_padrow_pad); % 将I扩充成1024*1024
for i = 1:1:row_I
for j = 1:1:row_I
fb(i+row_startj+row_start) = I(ij); % 里面256*256是直接反投影后的数据,外面的都是0
end
end
%% 获取二维锥形滤波器Frow, Frow = sqrt(u^2+v^2)
N = pad_N;
uP = zeros(NN);
vP = zeros(NN);
Frow = zeros(NN);
for i = 1:1:N
for j = 1:1:N
uP(ij) = ((-(N)/2)+(j)*1)*2*pi/N;
vP(ij) = ((-(N)/2)+(i)*1)*2*pi/N;
Frow(ij) = sqrt(uP(ij)^2+vP(ij)^2);
end
end
%% 求取断层图像fb的二维傅里叶变换Fb,根据Frow二维滤波后得出Fvu,Fvu = Fb*Frow
Fb = fft2(fb); % 二维傅里叶变换
Fb = ifftshift(Fb); % 直流分量移动到中央,中心是低频,向外是高频
Fvu = zeros(row_padrow_pad);
for i=1:1:row_pad
for j=1:1:row_pad
if(i==(row_pad/2+1) || j==(row_pad/2+1) )
Fvu(ij) = Fb(ij); % 中央的直流分量,仍然保持未滤波前的值
else
Fvu(ij) = Fb(ij)*Frow(ij); % 二维滤波
end
end
end
%% 对滤波后的数据Fvu,求取二维傅里叶逆变换,得到fxy
fxy = (ifft2((Fvu))); % 求取二维傅里叶逆变换
target = fxy;
crop = row_start;
target = target(crop+1:end-cropcrop+1:end-crop);
I_a = abs(target); % 复数的模值
I_a = (I_a-min(I_a(:)))./(max(I_a(:))-min(I_a(:))); % 归一化为 0~1
Lg_I_a = log(1+I_a); % 为了好的显示效果,取对数
figure
subplot(131) imshow(P[]) title(‘原始图像‘);
subplot(132) imshow(I[]) title(‘直接反投影后的断层图像‘);
subplot(133) imshow(Lg_I_a[]) title(‘先反投影后滤波恢复的图像‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2107 2017-06-08 09:37 二维图像的投影和图像重建分析之傅里叶变换法\BPF.m
文件 1729 2017-06-08 09:41 二维图像的投影和图像重建分析之傅里叶变换法\BPF_conv2.m
文件 7090 2017-06-04 19:16 二维图像的投影和图像重建分析之傅里叶变换法\CBP\Backproject.c
文件 8704 2017-06-04 20:35 二维图像的投影和图像重建分析之傅里叶变换法\CBP\Backproject.mexw64
文件 2737 2017-06-08 09:44 二维图像的投影和图像重建分析之傅里叶变换法\CBP\CBP.m
文件 1686 2017-06-05 10:56 二维图像的投影和图像重建分析之傅里叶变换法\CBP\DirectBackProject.m
文件 3394 2017-06-08 09:38 二维图像的投影和图像重建分析之傅里叶变换法\DFR.m
文件 766 2017-06-04 16:46 二维图像的投影和图像重建分析之傅里叶变换法\FBP.m
文件 383 2017-06-08 19:45 二维图像的投影和图像重建分析之傅里叶变换法\说明.txt
目录 0 2018-08-28 16:21 二维图像的投影和图像重建分析之傅里叶变换法\CBP
目录 0 2018-08-28 16:21 二维图像的投影和图像重建分析之傅里叶变换法
----------- --------- ---------- ----- ----
28596 11
- 上一篇:PLSR&ISLR;&nlsm;
- 下一篇:eemd算法程序 matlab代码
相关资源
- eemd算法程序 matlab代码
- 基于matlabGUI的小车倒立摆pid控制
- ExCoVapp算法,抗噪声能力强
-
同步发电机Matlab/simuli
nk仿真 - 经纬度转高斯平面坐标
- siftmatlab算法实现
- 竞争性自适应重加权
- 粒子群算法优化RBF网络matlab源码
- 基于MATLAB的N路信号频分复用系统的设
- 《信息隐藏技术实验教程》MATLAB源码
- MATLAB经典法功率谱密度估计
- PSAT工具软件
- MATLAB课程设计水果识别项目
- MATLAB信号处理EEMD工具箱
- VANET仿真,用matlab实现仿真测试的源码
- 针对栅格路径规划的蚁群算法MATLAB
- 基于傅里叶叠层的图像重建算法matl
- ieee14节点的潮流计算
- 四元数(quaternion)的Matlab工具箱
- madgwick_传感器融合算法_matlab
- 灰狼优化算法求解柔性作业车间问题
- 遗传算法GA车间调度Matlab代码
- EMD matlab实现源码
- 贝叶斯分类器Matlab实现113478
- matlab模板匹配车牌识别
- 刘慧颖 MATLAB R2007基础教程
- MATLAB电机仿真精华50例源代码
- zw_支持向量机与朴素贝叶斯算法matl
- 循环码编码
- jnd算法,最小可觉差
评论
共有 条评论