1

My question might be simple but I really need to make sure that the process I am doing is valid.

The MRI scanner acquires k-space data, S, and then takes 3D inverse Fourier Transform to reconstruct the actual image in the spatial domain, which is in the form of M.exp(j.P), in which M is the magnitude image and P is the phase image.

Now imagine what I have is being the magnitude and phase image and I want to generate S from them.

Now I checked my phase image and has values between 0 and 4096; So, first I have to normalize it to the [-pi,pi] range. Then, I can calculate S as the 3D Fourier Transform of the I = M.*exp(j.*P).

Is there anything else that I should consider in this process?

Now, how can I calculate phase image, P, from the complex/raw image, I? I tried MATLAB's built-in function, angle; So, P1 = angle(I), but I noticed P1 and P are not equal, even exp(j*P1) is not equal to exp(j*P). However, when I ignore the magnitude image, I1 = exp(j*P), and calculate P2 from that (P2 = angle(I1)), then the exp(j*P2) is equal to exp(j*P)!! I think the reason is the zero values of M, but I don't what is the correct way to regenerate P when I have I = M.*exp(j.*P).

SaraG
  • 179
  • 2
  • 11

1 Answers1

0

You are computing the complex image by applying M.exp(j.P).

You need a further step to get the k-space data by applying inverse Fourier Transform as follows:

Matlab code:

complex_img = M.*exp(j.P);
ksp= fftshift(ifft2(fftshift(complex_img)));
James Wilson
  • 1,541
  • 7
  • 20