我使用此脚本重建了Shepp-Logan幻影的图像。
基本上,它只是简单地使用radon
来获取sinogram
,并使用iradon
将其转换回去。
但是,我发现当我调整对比度时,可以看到非常明显的云纹图案。如果使用我的CT图像数据集,这一点更加明显。
有人可以帮助我理解这一点吗?谢谢!
img = phantom(512)*1000;
views = 576;
angles = [0:180/576:180-180/576];
sino = radon(img,angles);
img_rec = iradon(sino,angles);
imshow(img_rec,[]);
调整对比度后的完整图像:
云纹明显的区域:
答案 0 :(得分:2)
这可能是由于某些因素而发生的:
iradon
使用'Ram-Lak'(称为ramp filter)过滤作为默认过滤条件,并且不使用任何窗口来删除-强调高频噪声。您说“如果使用我的CT图像数据集,这会更加明显” ,这是因为图像中确实存在噪点。该文档本身建议使用一些窗口:“由于此滤波器对投影中的噪声敏感,因此下面列出的滤波器之一可能是更可取的。这些滤波器将Ram-Lak滤波器乘以一个不再强调较高频率的窗口。”
radon
和iradon
并未考虑探测器尺寸和横穿像素的X射线长度。这些功能只是像素驱动方法,即,它们基本上以几何方式投影检测器中的像素并进行插值。可能的解决方案:
如今,有[1]和[2]等更复杂的投影仪。正如我所说的here,我为2D计算机断层扫描(CT)和3D数字乳房断层扫描(DBT)实现了距离驱动投影仪,因此可以随时将其用于实验。
例如,我使用距离驱动方法生成了3600个等距的幻影投影,并使用以下行代码通过iradon函数对其进行了重构:
slice = iradon(sinogram',rad2deg(geo.theta));