我正在使用MATLAB中图像处理工具箱中的内置radon函数。直到今天,我一直在使用一些自定义函数来获得预期的结果。特别是,我正在开发一个数学模型,该模型可以在几个方向(基线为0/45/90/135度)上检索点扩展函数(PSF)的投影。
我准备了一个非常简单的示例,它将显示我正在尝试的问题:
I = zeros(1000,1000);
I(250:750, 250:750) = 1;
theta = [0 45 90 135];
[R,xp] = radon(I,theta);
figure;plot(R);legend('0°','45°','90°','135°');
如果运行示例,您将看到45/135°(对角线)的图显示了沿着曲线的锯齿形状的工件。最初,我认为这与我使用的采样网格(点数)有关。但是,当使用点数为奇数的网格时,问题仍然存在。我不太理解这个结果,因为radon变换只是在多个方向上的累积积分。因此,我不应获得这种“锯齿”模式。
我对结果真的很困惑。有人尝试过同样的问题吗?
提前致谢。
最佳答案
当您使用简单的前向投影仪时,这就是混叠工件,我相信这是在randon()
函数中实现的。要删除此伪像,您需要增加采样数量(randon()
可能使用相同数量的幻像采样,您可能希望将该数量增加到至少幻像采样数量的两倍),或者实现更好的前向投影仪,例如GE的CT图像重建软件中使用的驱动投影仪。