【成像】基于Siddon 算法和 Jacobs 算法对锥束 CT 进行正向投影计算附matlab代码

 ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab完整代码及仿真定制内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

物理应用             机器学习

🔥 内容介绍

Siddon 投影是一种用于计算机断层扫描 (CT) 成像的投影算法。它是一种快速且内存高效的算法,广泛用于医学成像和其他领域。本文将深入探讨基于 Siddon 投影的图像重建过程。

Siddon 投影算法

Siddon 投影算法基于以下原理:

  • 射线穿过对象时,其强度会随着对象内部的衰减而减弱。

  • 衰减量与射线路径上的对象密度成正比。

算法通过将对象离散化为体素网格来工作。对于每个体素,算法计算射线穿过体素的路径长度。然后,它根据路径长度和体素密度计算射线的衰减。最后,算法将所有射线的衰减值累加起来,得到投影图像。

图像重建

基于 Siddon 投影的图像重建涉及以下步骤:

  1. **投影采集:**从不同角度采集对象的投影图像。

  2. **反投影:**将每个投影图像反投影到图像空间中。

  3. **滤波回投影:**对反投影图像进行滤波,以去除噪声和伪影。

  4. **重建:**将滤波后的反投影图像相加,得到最终的重建图像。

优点

基于 Siddon 投影的图像重建具有以下优点:

  • **快速:**算法计算效率高,可以快速重建图像。

  • **内存高效:**算法只需要存储投影图像,不需要存储整个体素网格。

  • **易于实现:**算法的实现相对简单。

缺点

基于 Siddon 投影的图像重建也有一些缺点:

  • **伪影:**算法容易产生伪影,例如条纹和环状伪影。

  • **分辨率有限:**算法的分辨率受到投影图像分辨率的限制。

  • **噪声敏感:**算法对噪声敏感,这可能会导致图像质量下降。

应用

基于 Siddon 投影的图像重建广泛用于以下领域:

  • **医学成像:**CT 扫描、正电子发射断层扫描 (PET) 和单光子发射断层扫描 (SPECT)

  • **工业成像:**无损检测、材料表征

  • **科学成像:**显微成像、天文成像

结论

基于 Siddon 投影的图像重建是一种快速、内存高效且易于实现的算法。它广泛用于医学成像和其他领域。虽然算法有一些缺点,但其优点使其成为图像重建任务的宝贵工具。

📣 部分代码

function [p,ellipse]=phantom3dAniso(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.%      'yu-ye-wang'             Another version of the modified Shepp-Logan%                               phantom from "Katsevich-Type Algorithms for%                               Variable Radius Spiral Cone-BeamCT"%%   N specifies the 3D grid size of P%   If N is a scalar, P will have isotropic size [N, N, N]%   If N is a 3-vector, P will have size [N(1) N(2) N(3)]%   If you omit the argument, N defaults to [64 64 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:%   %     Column 1:  A      the additive intensity value of the ellipsoid%     Column 2:  a      the length of the x semi-axis of the ellipsoid %     Column 3:  b      the length of the y semi-axis of the ellipsoid%     Column 4:  c      the length of the z semi-axis of the ellipsoid%     Column 5:  x0     the x-coordinate of the center of the ellipsoid%     Column 6:  y0     the y-coordinate of the center of the ellipsoid%     Column 7:  z0     the z-coordinate of the center of the ellipsoid%     Column 8:  phi    phi Euler angle (in degrees) (rotation about z-axis)%     Column 9:  theta  theta Euler angle (in degrees) (rotation about x-axis)%     Column 10: psi    psi Euler angle (in degrees) (rotation about z-axis)%%   For purposes of generating the phantom, the domains for the x-, y-, and %   z-axes span [-1,1].  Columns 2 through 7 must be specified in terms%   of this range.%%   [P,E] = PHANTOM3D(...) returns the matrix E used to generate the phantom.%%   Class Support%   -------------%   All inputs must be of class double.  All outputs are of class double.%%   Remarks%   -------%   For any given voxel in the output image, the voxel's value is equal to the%   sum of the additive intensity values of all ellipsoids that the voxel is a %   part of.  If a voxel is not part of any ellipsoid, its value is 0.  %%   The additive intensity value A for an ellipsoid can be positive or negative;%   if it is negative, the ellipsoid will be darker than the surrounding pixels.%   Note that, depending on the values of A, some voxels may have values outside%   the range [0,1].%    %   Example%   -------%        ph = phantom3d(128);%        figure, imshow(squeeze(ph(64,:,:)))%[ellipse,n] = parse_inputs(varargin{:});nx = n(1); ny = n(2); nz = n(3);p = zeros([nx ny nz]);rngx =  ( (0:nx-1)-(nx-1)/2 ) / ((nx-1)/2); rngy =  ( (0:ny-1)-(ny-1)/2 ) / ((ny-1)/2); rngz =  ( (0:nz-1)-(nz-1)/2 ) / ((nz-1)/2); % PJB: Note the swap of the x and y with meshgrid parameters. %[x,y,z] = meshgrid(rngx,rngy,rngz);[x,y,z] = meshgrid(rngy,rngx,rngz);x=single(x);y=single(y);z=single(z);coord = [flatten(single(x)); flatten(single(y)); flatten(single(z))];clear x y z;p = flatten(p);for k = 1:size(ellipse,1)       A = ellipse(k,1);            % Amplitude change for this ellipsoidfunction e = yu_ye_wang%%   Yu H, Ye Y, Wang G, Katsevich-Type Algorithms for Variable Radius Spiral Cone-Beam CT%      %         A      a     b     c     x0      y0      z0    phi  theta    psi%        -----------------------------------------------------------------e =    [  1  .6900  .920  .900      0       0       0      0      0      0        -.8  .6624  .874  .880      0       0       0      0      0      0        -.2  .4100  .160  .210   -.22       0    -.25    108      0      0        -.2  .3100  .110  .220    .22       0    -.25     72      0      0         .2  .2100  .250  .500      0     .35    -.25      0      0      0         .2  .0460  .046  .046      0      .1    -.25      0      0      0         .1  .0460  .023  .020   -.08    -.65    -.25      0      0      0         .1  .0460  .023  .020    .06    -.65    -.25     90      0      0         .2  .0560  .040  .100    .06   -.105    .625     90      0      0        -.2  .0560  .056  .100      0    .100    .625      0      0      0 ];       return;                     

⛳️ 运行结果

🔗 参考文献

[1] 陈涵天,郑建奎,崔索超,等.一种基于三维角锥的光束多程传输系统:202311366503[P][2024-03-08].

[2] 李志勇,王学涛,王笑宇,等.基于扩散模型的牙科锥束CT金属伪影校正方法及装置:202311274241[P][2024-03-08].

[3] 包宜骏,陶思玮,匡翠方,等.X射线锥束CT位姿矫正方法,系统及装置:202311684036[P][2024-03-08].

🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁  关注我领取海量matlab电子书和数学建模资料

👇  私信完整代码和数据获取及论文数模仿真定制

1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化
2 机器学习和深度学习方面

2.1 bp时序、回归预测和分类

2.2 ENS声神经网络时序、回归预测和分类

2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类

2.4 CNN/TCN卷积神经网络系列时序、回归预测和分类

2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类

2.7 ELMAN递归神经网络时序、回归\预测和分类

2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类

2.9 RBF径向基神经网络时序、回归预测和分类

2.10 DBN深度置信网络时序、回归预测和分类
2.11 FNN模糊神经网络时序、回归预测
2.12 RF随机森林时序、回归预测和分类
2.13 BLS宽度学习时序、回归预测和分类
2.14 PNN脉冲神经网络分类
2.15 模糊小波神经网络预测和分类
2.16 时序、回归预测和分类
2.17 时序、回归预测预测和分类
2.18 XGBOOST集成学习时序、回归预测预测和分类
方向涵盖风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、用电量预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、 充电车辆路径规划(EVRP)、 双层车辆路径规划(2E-VRP)、 油电混合车辆路径规划、 船舶航迹规划、 全路径规划规划、 仓储巡逻
4 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化、车辆协同无人机路径规划
5 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
6 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
7 电力系统方面
微电网优化、无功优化、配电网重构、储能配置、有序充电
8 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长 金属腐蚀
9 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 30
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值