m基于shepp-Logan模型和滤波反投影的医学图像多尺度全局重建和局部重建matlab仿真

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: m基于shepp-Logan模型和滤波反投影的医学图像多尺度全局重建和局部重建matlab仿真

1.算法描述

    从投影重建物体的截面图像是图像处理中非常重要的技术此技术在物体的无损伤性检测其内部缺陷的应用中能起很大作用从投影重建图像的技术早在20世纪中期就已经制成常规医疗诊断设备的商品1917年奥地利数学家J.Radon发表的论文证明了二维物体或三维物体可以从许多投影来重建其内部数据英国的EMI公司中央研究所1972年由G.N.Hounsfield设计出X射线断层分析仪此后于1974年5月在加拿大蒙特利尔第一次国际会议上正式命名为Computerized Tomography简称XCT或CT当时这台仪器可以获得人体的各个部位鲜明清晰的断层图像另外美国塔夫茨大学A.M.Cormack在1963年就提出了精确的非迭代的级数展开法用于图像重建的算法中并指出在诊断医学中图像重建的可能性以上两人由于对CT研制工作的开创性贡献获得了1979年诺贝尔医学奖。

   计算机层析成像技术(Computed Tomography,简称CT)是利用具有一定能量的射线源(X射线,γ射线)对物体进行断层扫描,并根据物体外部的探测器获得的物理量(指物质对射线的衰减系数)生成的一维投影数据,通过特定的重建算法,得到所扫描断层的二维图像。CT断层图像具有无影像重叠、空间和密度分辨率高、可直接进行数字化处理等优点,通过近十几年的发展已成为非接触无损检测的主流技术,是关键部件检测、机械仿型设计、安全检查等方面强有力的手段,并广泛应用于航空、航天、机械、汽车、船舶、公安等领域。此外,在医学领域,医用CT机已成为疾病诊断的重要辅助工具,对病灶的位置及病变程度的良好再现已使其成为医学影像领域里的主要医疗器械。CT机有三个组成部分。一是数据采集系统,二是图像重建(主要是图像重建算法),三是图像后处理及显示系统。CT图像重建算法主要分为两类,即变换法和级数展开法。变换法包括滤波反投影算法、傅立叶变换法以及ρ滤波法(rho-filtered layergrams),小波变换法;级数展开法主要是代数重建算法。滤波反投影是比较常用的变换算法,它具有速度快,空间和密度分辨率好的优点。

   滤波反投影法是目前CT图像重建领域使用得最为广泛的一种算法,其有效性和准确性也在临床上得到了验证。

9238b013cb4c9d3f3a6b1fcc0311a7f7_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

 通常在计算机中,采用的离散反投影算法,因此离散情形下的卷积反投影算法可以如下描述:

2435175573d3d4c2587ffc511dee4c08_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

   其中O(x,y)代表原始图像,R(x,y)代表重建图像。当然孤立地去看相对误差并不是一个好的衡量标准,它必须同人们的视觉评估结合起来进行考虑。 

shepp-Logan模型:

    用S-L头模型进行计算机仿真研究的主要好处之一是可以获得该模型投影数据的解析表达式。一个中心位置在原点且未经旋转的椭圆,其长轴与X轴重合,短轴与Y轴重合。假设椭圆内的密度为r、椭圆外密度为零,则该椭圆图像可用以下方程表示:

1996dba716d4379891155f9a90431d56_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

式中A,B分别为椭圆长轴与短轴的长度。

6ab7983e2f589335998a1aed48dd32dc_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

    在研究从投影重建图像的算法时,为了比较客观的评价各种重建算法的有效性,人们常选用公认的Sheep-Logan 头模型作为研究对象。该模型由10个位置、大小、方向、密度各异的椭圆组成,象征一个脑断层图像。

该模型的主要参数如下表所示:

de9b2f30a792ddb4ff5482dc09848a2d_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

多尺度全局重建算法计算流程:

586a9fcc803ddc419f7d0ccb11c4a172_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

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

9dd9a1f0feb4ae8c86ce249a848c11c9_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
4638f91a03108dd03379b42b8ba46eea_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
5921fd914e56382002cf53d387d26ca5_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
daacf522ca5713588d703ac58e8500ac_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
17a8eb4c7de5b936a36ab0ce4aab1ec9_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
a85571ada69627481929974571ca07ca_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
39fe355fd7b79f63e285b749d00646d8_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
1c20a1b8903661d174b0cf7e2a35ff03_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

 
n = size(PR,1);
sideSize = n;
a = 1;
[Length, Count] = size(PR);
w = [-pi:(2*pi)/Length:pi-(2*pi)/Length];
 
rn1 = abs(2/a*sin(a.*w./2));
rn2 = sin(a.*w./2);
rd = (a*w)./2;
r = rn1*(rn2/rd)^2;
 
f = fftshift(r);
for i = 1:Count
        IMG = fft(PR(:,i));
        fimg = IMG.*f';
        g(:,i) = ifft(fimg);%利用FFT,IFFT进行滤波
end
filtPR= real(g);
............................................................
I=phantom(256);  %生产头部模型图
figure(1);
imshow(I);       %显示图像
IMG=double(I);   %双精度显示
[cod_a,cod_h,cod_v,cod_d,map]=wtest(IMG);%一层小波变换
figure(2);
subplot(221)%显示分解系数1
imshow(cod_a,map);
subplot(222)%显示分解系数2
imshow(cod_h,map);
subplot(223)%显示分解系数3
imshow(cod_v,map);
subplot(224)%显示分解系数4
imshow(cod_d,map);
Z1=idwt2(cod_a,cod_h,cod_v,cod_d,'db1');%重建
figure(3);
imshow(Z1,map);
for i=1:256
    for j=1:256
        
        error(i,j)=(I(i,j)-Z1(i,j))^2/I(i,j)^2;%误差求解
    end
end
for i=1:256
    for j=1:256
        if I(i,j)==0
        error(i,j)=255;    
        end
       
    end
end
for i=1:256
    for j=1:256
        if error(i,j)>255;
        error(i,j)=255;    
        end
       
    end
end
相关文章
|
3天前
|
机器学习/深度学习 算法 安全
m基于Q-Learning强化学习的路线规划和避障策略matlab仿真
MATLAB 2022a仿真实现了Q-Learning算法在路线规划与避障中的应用,展示了智能体在动态环境中学习最优路径的过程。Q-Learning通过学习动作价值函数Q(s,a)来最大化长期奖励,状态s和动作a分别代表智能体的位置和移动方向。核心程序包括迭代选择最优动作、更新Q矩阵及奖励机制(正奖励鼓励向目标移动,负奖励避开障碍,探索奖励平衡探索与利用)。最终,智能体能在复杂环境中找到安全高效的路径,体现了强化学习在自主导航的潜力。
9 0
|
1天前
|
算法
m基于BP译码算法的LDPC编译码matlab误码率仿真,对比不同的码长
MATLAB 2022a仿真实现了LDPC码的性能分析,展示了不同码长对纠错能力的影响。短码长LDPC码收敛快但纠错能力有限,长码长则提供更强纠错能力但易陷入局部最优。核心代码通过循环进行误码率仿真,根据EsN0计算误比特率,并保存不同码长(12-768)的结果数据。
20 9
m基于BP译码算法的LDPC编译码matlab误码率仿真,对比不同的码长
|
4天前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
摘要: 本文介绍了使用matlab2022a中优化后的算法,应用于时间序列回归预测,结合CNN、LSTM和Attention机制,提升预测性能。GWO算法用于优化深度学习模型的超参数,模拟灰狼社群行为以求全局最优。算法流程包括CNN提取局部特征,LSTM处理序列依赖,注意力机制聚焦相关历史信息。GWO的灰狼角色划分和迭代策略助力寻找最佳解。
|
5天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
5天前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
5天前
|
算法 调度
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
面向配电网韧性提升的移动储能预布局与动态调度策略(matlab代码)
|
5天前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
5天前
|
运维 算法
基于改进遗传算法的配电网故障定位(matlab代码)
基于改进遗传算法的配电网故障定位(matlab代码)
|
5天前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)