【问题标题】:Generating K-space from magnitude and phase从幅度和相位生成 K 空间
【发布时间】:2017-12-11 15:39:22
【问题描述】:

我的问题可能很简单,但我确实需要确保我正在执行的过程是有效的。

MRI扫描仪获取k空间数据S,然后进行3D傅里叶逆变换在空间域重建实际图像,其形式为M.exp(j.P),其中M是幅度图像,P 是相位图像。

现在想象一下我所拥有的是幅度和相位图像,我想从中生成S

现在我检查了我的相位图像,其值介于 0 和 4096 之间;所以,首先我必须将其标准化为[-pi,pi] 范围。然后,我可以将S 计算为I = M.*exp(j.*P) 的 3D 傅里叶变换。

在这个过程中我还有什么需要考虑的吗?

现在,我如何从复杂/原始图像 I 计算相位图像 P?我尝试了MATLAB的内置函数angle;所以,P1 = angle(I),但我注意到P1P 不相等,甚至exp(j*P1) 也不等于exp(j*P)。但是,当我忽略幅度图像I1 = exp(j*P) 并从中计算P2 (P2 = angle(I1)) 时,exp(j*P2) 等于exp(j*P)!我认为原因是M 的零值,但是当我有I = M.*exp(j.*P) 时,我不知道重新生成P 的正确方法是什么。

【问题讨论】:

  • 如果您在标签和/或描述中提供您的编程环境可能会有所帮助。数学实验室? ? Python? COBOL4MRI?
  • @ArturBiesiadowski MathLab 是什么?
  • 我期待被问到什么是 COBOL4MRI :) MathLab 是 MatLab+Mathematica 的组合词,来自以前从未使用过它们的人。无论如何,经过编辑,我们现在知道它是 MatLab。

标签: matlab fft complex-numbers ifft phase


【解决方案1】:

您正在通过应用 M.exp(j.P) 来计算复杂图像。

您需要进一步通过应用傅里叶逆变换来获取 k 空间数据,如下所示:

Matlab 代码:

complex_img = M.*exp(j.P);
ksp= fftshift(ifft2(fftshift(complex_img)));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 2011-09-17
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多