image - Radon Transform 跨图像对角线后的伪影?

标签 image matlab image-processing

我正在使用 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/

相关文章:

python - 使用 Canny edge 创建 mask - 已更新

c - 在 Linux 中将 MATLAB 输出与 C/C++ 程序集成

javascript - 使用 CSS 裁剪/调整图像大小以更改纵横比

javascript - 在 JavaScript 中等待图像加载完成

python - 增强人工图像,使其看起来像真实图像以用于 TF 对象检测

matlab - 谁能给我一些关于 MATLAB 中的 fprintf ('How about single quote(' ')?\n') 的解释?

matlab - 在opencv中难以使用FFT和IFFT

使用双三次方法的 C++ 图像插值

visual-c++ - 如何比较 OpenCV 中的霍夫线位置?

Javascript:从 url 加载图像并显示