使用ra和iradon时,莫尔图案出现在重建图像中

时间:2019-05-18 17:00:27

标签: matlab image-processing tomography-reconstruction

我使用此脚本重建了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,[]);

调整对比度后的完整图像:

full image after being adjusted contrast

云纹明显的区域:

regions with obvious moire pattern

1 个答案:

答案 0 :(得分:2)

这可能是由于某些因素而发生的:

  • 在MATLAB documentation中,iradon使用'Ram-Lak'(称为ramp filter)过滤作为默认过滤条件,并且不使用任何窗口来删除-强调高频噪声。您说“如果使用我的CT图像数据集,这会更加明显” ,这是因为图像中确实存在噪点。该文档本身建议使用一些窗口:
  

“由于此滤波器对投影中的噪声敏感,因此下面列出的滤波器之一可能是更可取的。这些滤波器将Ram-Lak滤波器乘以一个不再强调较高频率的窗口。”

  • 其他不便之处与投影机本身有关。 MATLAB的内置函数radoniradon并未考虑探测器尺寸和横穿像素的X射线长度。这些功能只是像素驱动方法,即,它们基本上以几何方式投影检测器中的像素并进行插值。

可能的解决方案:

如今,有[1][2]等更复杂的投影仪。正如我所说的here,我为2D计算机断层扫描(CT)和3D数字乳房断层扫描(DBT)实现了距离驱动投影仪,因此可以随时将其用于实验。

例如,我使用距离驱动方法生成了3600个等距的幻影投影,并使用以下行代码通过iradon函数对其进行了重构:

slice = iradon(sinogram',rad2deg(geo.theta));

Here