我正在使用 MATLAB 图像处理工具箱中的内置 radon 函数。直到今天,我一直在使用一些自定义函数来获得预期的结果。特别是,我正在开发一种数学模型,用于检索点扩散函数 (PSF) 在多个方向(基线为 0/45/90/135 度)的投影。
我准备了一个非常简单的例子来展示我正在试验的问题:
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°(对角线)的绘图显示了一个沿着曲线的锯齿状伪影。起初我认为这与我使用的采样网格(偶数点)有关。但是,当使用具有奇数个点的网格时,问题仍然存在。我不太理解这个结果,因为氡变换只是几个方向的累积积分。因此,我不应该得到这种“锯齿”图案。
我对结果真的很困惑。有没有人试验过同样的问题?
提前致谢。
最佳答案
当你使用一个简单的正向投影仪时,它是混叠的产物,我相信这是在 randon()
函数中实现的。要删除此工件,您需要增加采样数(randon()
可能使用相同数量的幻影采样,您可能希望将该数字增加到至少两倍于幻影数采样),或实现更好的前向投影仪,例如 GE 的 CT 图像重建软件中使用的 driven-driven projector。
关于image - Radon Transform 跨图像对角线后的伪影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38652164/