使用 radon 和 iradon 时,重建图像中出现莫尔图案
Moire pattern shows up in the reconstructed image while using radon and iradon
我用这个脚本重建了 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,[]);
调整对比度后的全图:
云纹明显的区域:
这可能是由于某些因素造成的:
- 来自 MATLAB documentation,
iradon
uses 'Ram-Lak' (known as ramp filter) 默认过滤,并且不对高频噪声使用任何窗口 de-emphasizes。您说 "This is even more obvious if I use my CT image dataset",那是因为图像中存在真实噪声。文档本身建议使用一些窗口:
"Because this filter is sensitive to noise in the projections, one of the filters listed below might be preferable. These filters multiply the Ram-Lak filter by a window that de-emphasizes higher frequencies."
- 其他不便与投影机本身有关。来自 MATLAB 的 built-in 函数
radon
和 iradon
没有考虑检测器尺寸和穿过像素的 x-ray 长度。这些函数只是 像素驱动 方法,即它们基本上是几何投影探测器中的像素并对其进行插值。
可能的解决方案:
今天有更复杂的投影仪 [1] and [2]. As I stated here,我实现了 distance-driven 投影仪用于 2D 计算机断层扫描 (CT) 和 3D 数字乳房断层合成 ( DBT),因此请随意将其用于您的实验。
例如,我用distance-driven方法生成了幻影的3600个等距投影,并使用这行代码用iradon函数重建它:
slice = iradon(sinogram',rad2deg(geo.theta));
我用这个脚本重建了 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,[]);
调整对比度后的全图:
云纹明显的区域:
这可能是由于某些因素造成的:
- 来自 MATLAB documentation,
iradon
uses 'Ram-Lak' (known as ramp filter) 默认过滤,并且不对高频噪声使用任何窗口 de-emphasizes。您说 "This is even more obvious if I use my CT image dataset",那是因为图像中存在真实噪声。文档本身建议使用一些窗口:
"Because this filter is sensitive to noise in the projections, one of the filters listed below might be preferable. These filters multiply the Ram-Lak filter by a window that de-emphasizes higher frequencies."
- 其他不便与投影机本身有关。来自 MATLAB 的 built-in 函数
radon
和iradon
没有考虑检测器尺寸和穿过像素的 x-ray 长度。这些函数只是 像素驱动 方法,即它们基本上是几何投影探测器中的像素并对其进行插值。
可能的解决方案:
今天有更复杂的投影仪 [1] and [2]. As I stated here,我实现了 distance-driven 投影仪用于 2D 计算机断层扫描 (CT) 和 3D 数字乳房断层合成 ( DBT),因此请随意将其用于您的实验。
例如,我用distance-driven方法生成了幻影的3600个等距投影,并使用这行代码用iradon函数重建它:
slice = iradon(sinogram',rad2deg(geo.theta));