问题标签 [back-projection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
952 浏览

matlab - 滤波反投影 Matlab

我已经实现了 BackProjection 的代码并且它可以工作。现在我必须使用第一个 ramlak 过滤器和汉明窗口来实现过滤版本的代码。我的正弦图尺寸为 144x180。我的想法是

为了有这样的过滤器在此处输入图像描述

然后对于每个投影 s

然后执行反投影算法

你能告诉我它是否正确吗?

谢谢

0 投票
1 回答
5168 浏览

python - 在 TensorFlow 中将张量保存为图像

这可能是一个简单的问题。我只是想对图像进行氡变换并使用 TensorFlow 中的函数保存它。但结果不对。我知道我可以使用 plt.imsave() 正确保存图像,但我想知道如何在 TensorFlow 中执行此操作。

我是 TensorFlow 新手,感谢您的帮助。

这是shepp-logan.jpg我使用的图像。这是一张64*64大小的灰度图

这是保存的图片

这是我的代码。

0 投票
1 回答
1392 浏览

matlab - 在 Matlab 中使用中心切片定理实现滤波反投影算法

我正在研究使用中心切片定理进行家庭作业的过滤反投影算法,虽然我理解了纸上的理论,但我在 Matlab 中遇到了实现它的问题。我被提供了一个骨架来完成它,但有一个步骤我认为我可能会误解。这是我所拥有的:

我输入的正弦图只是 Shepp-Logan 体模从 0 到 179 度的氡函数的输出。现在运行代码会给我一个黑色图像。我想我在将行的 FT 添加到图像的循环中遗漏了一些东西。根据我对中心切片定理的理解,我认为应该发生的是:

  • 初始化一个与 2DFT 大小相同的数组(即 diagDim x diagDim)。这就是傅立叶空间。

  • 从单个角度取一行与线积分信息相对应的正弦图,并对其应用一维傅立叶变换

  • 根据中心切片定理,该线积分的 FT 是一条通过傅立叶域的线,该线以对应于投影角度的角度穿过原点。因此,为了模拟这一点,我取该线积分的 FT 并将其放在我创建的 diagDim x diagDim 矩阵的中心行

  • 接下来,我将创建的一维斜坡滤波器的 FT 与线积分的 FT 相乘。傅里叶域中的乘法等效于空间域中的卷积,因此这将线积分与滤波器进行卷积。

  • 现在我将整个矩阵旋转投影的角度。这应该给我一个 diagDim x diagDim 矩阵,其中单行信息以一定角度穿过中心。Matlab在旋转时增加了矩阵的大小,但由于正弦图在开始时被填充,没有信息丢失,矩阵仍然可以添加

  • 如果将所有这些带有一条通过中心的线的空矩阵加在一起,它应该会给我完整的 2D FT 图像。所需要做的就是取逆 2D FT,原始图像应该是结果。

如果我遇到的问题是概念性的,如果有人能指出我搞砸的地方,我将不胜感激。如果相反,这是一个 Matlab 的东西(我对 Matlab 还是有点陌生​​),我会很高兴了解我错过了什么。