1.投影矩阵
书中介绍了4种模型,常用的是模型4,用两个二维数组[M, 2N]分别存储射线(1~M)穿过的网格编号(1~N)以及在对应网格的线段长度(0~√2),如下面左图所示。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLkNGMiBzN3U2N0gzNiZjMihjZjRTZ5EDZzIzM3EmMzUzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
射线与网格只有四种相交情况,如图所画4条射线。 假设射线与第一格交点A,与第二格交点B,而交点A,B与第一个网格底边距离为d1和d2,该射线方程为y=mx+b,则可用d1,d2,m和b来表示该射线在该网格的长度;并依次往后推算(书P97页) 具体实现代码见medfuncSystemMatrix.m
输入:投影角度,矩阵大小,探测器通道数,网格大小
输出:投影矩阵(射线穿过网格的编号以及长度)
2.MLEM算法
遍历每条射线,即可得到该射线在所有网格的对应长度,再乘以权重,即为估计的投影值,与实际投影值比较后,得到比值向量;再将比值向量和真实全1向量进行反投影,得到修正因子,通过迭代,不断更新权重,已接近真实图像 具体实现代码见mlem.m
2.1点源重建结果:
2.2头模型重建结果
3.OSEM算法
在MLEM算法的基础上划分子集,具体代码见osem.m
划分子集:
划分要求:子集平衡;子集排序
划分方案:间隔子集划分,将射线平均划分到每个子集中,并记录射线编号
以上实验内容均学习整理于黄力宇老师等著《医学断层图像重建仿真实验》。