运用滤波反投影的方法对图像进行重建matlab仿真

简介: 运用滤波反投影的方法对图像进行重建matlab仿真

1.算法描述

   直接由正弦图得到反投影图像,会存在严重的模糊,这是早期 CT 系统所存在的问题。傅立叶中心切片定理表明,投影的一维傅立叶变换是得到投影区域的二维傅立叶变换的切片。滤波反投影重建算法在反投影前将每一个采集投影角度下的投影进行卷积处理,从而改善点扩散函数引起的形状伪影,有效地改善了重建的图像质量。

1.png

   括号 [] 内部是一个一维傅里叶反变换,可以认为这是一个一维滤波器的传递函数。由于 ∣ ω ∣ |\omega|∣ω∣ 是一个不可积的斜坡函数(Slope function),可以通过对斜坡加窗进行限制,典型地如汉明窗(Hamming window)、韩窗(Hann window)。该式也可以使用空间卷积来实现:

2.png

   这表明,将对应的投影 g ( ρ , θ ) g(\rho, \theta)g(ρ,θ) 与斜坡滤波器传递函数 s ( ρ ) s(\rho)s(ρ) 的傅里叶反变换进行卷积,可以得到角度 θ \thetaθ 的各个反投影,整个反投影图像可以通过对所有反投影图像积分得到。

   滤波反投影 ,运用滤波反投影的方法对图像进行重建matlab仿真+程序操作视频 对比包括 Ram-Lak (Ramp),Shepp-Logan,Ram-Lak Cosine,Ram-Lak Hamming,Ram-Lak Hann。

Ram-Lak

   斜坡滤波器(甚至在被加窗时)在频率域的直流项为零,故每一幅反投影图像的均值将为零。这将意味着,每一幅反投影图像都将有正像素和负像素值,当所有的反投影图像相加形成最终的重建图像时,一些负像素值位置可能变成正像素,而平均值可能不为零,但是,典型地,最终的图像将还是有负像素值。Ram-Lak滤波函数如下所示: 

3.png

Shepp-Logan

   Shepp-Logan头模型是由L. A. Shepp和B. F. Logan于1974年首次提出的,它由10 个位置、大小、方向、密度各异的椭圆叠加而成,模拟一个脑部的断层。Shepp-Logan滤波函数如下所示: 

4.png

2.仿真效果预览
matlab2022a仿真结果如下:

5.png
6.png
7.png
8.png
9.png
10.png

3.MATLAB部分代码预览

    switch list1_val
      case 'None'
        filter_val = 'None';
      case 'Ram-Lak (Ramp)'
        filter_val = 'Ram-Lak';
      case 'Shepp-Logan'
        filter_val = 'Shepp-Logan';
      case 'Ram-Lak Cosine'
        filter_val = 'Cosine';
      case 'Ram-Lak Hamming'
        filter_val = 'Hamming';
      case 'Ram-Lak Hann'
        filter_val = 'Hann';
      case 'Special'
        filter_val = 'Special';
    end
    
    switch list2_val
      case 'Linear'
        interpol_val = 'linear';
      case 'Nearest'
        interpol_val = 'nearest';
      case 'Spline'
        interpol_val = 'spline';
      case 'Cubic'
        interpol_val = 'pchip';
    end
 
    theta = round(0 : 180/antal_projektioner : 179);
    del_sinogram = data.sinogram(:, theta+1);
 
    if strcmp(filter_val, 'Special') == 1
      if strcmp(file_name(end-4:end), '3.mat') == 1
        data.SB = data.SB + 0.3 * rand(size(data.SB));
      end
      
      if strcmp(file_name(end-4:end), 'f.mat') == 1
        filter_val = 'Hamming';
        rec_img = iradon(del_sinogram, theta, interpol_val, filter_val);
      else
        FFT_sinogram = fftshift(fft(del_sinogram),1);
        FFT_sinogram = FFT_sinogram .* data.SB(:, theta+1);
        del_sinogram = ifft(ifftshift(FFT_sinogram,1));
        rec_img = iradon(del_sinogram, theta, interpol_val);
      end
    else
      rec_img = iradon(del_sinogram, theta, interpol_val, filter_val);
    end
    
    figure, imagesc(rec_img), colormap(pink)
    title([data.txt ': ' num2str(antal_projektioner) ' projections, ' list1_val ' filter, ' list2_val ' interpolation'])
  end
A_023
相关文章
|
1天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
1天前
|
机器学习/深度学习 算法 机器人
基于QLearning强化学习的较大规模栅格地图机器人路径规划matlab仿真
本项目基于MATLAB 2022a,通过强化学习算法实现机器人在栅格地图中的路径规划。仿真结果显示了机器人从初始位置到目标位置的行驶动作序列(如“下下下下右右...”),并生成了详细的路径图。智能体通过Q-Learning算法与环境交互,根据奖励信号优化行为策略,最终学会最优路径。核心程序实现了效用值排序、状态转换及动作选择,并输出机器人行驶的动作序列和路径可视化图。
110 85
|
1天前
|
算法
基于龙格库塔算法的锅炉单相受热管建模与matlab数值仿真
本设计基于龙格库塔算法对锅炉单相受热管进行建模与MATLAB数值仿真,简化为喷水减温器和末级过热器组合,考虑均匀传热及静态烟气处理。使用MATLAB2022A版本运行,展示自编与内置四阶龙格库塔法的精度对比及误差分析。模型涉及热传递和流体动力学原理,适用于优化锅炉效率。
|
3天前
|
传感器 算法
基于GA遗传优化的WSN网络最优节点部署算法matlab仿真
本项目基于遗传算法(GA)优化无线传感器网络(WSN)的节点部署,旨在通过最少的节点数量实现最大覆盖。使用MATLAB2022A进行仿真,展示了不同初始节点数量(15、25、40)下的优化结果。核心程序实现了最佳解获取、节点部署绘制及适应度变化曲线展示。遗传算法通过初始化、选择、交叉和变异步骤,逐步优化节点位置配置,最终达到最优覆盖率。
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
247 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
5月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
147 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
5月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
117 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
8月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
8月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)

热门文章

最新文章