I have Fourier transforms of two images which I wish to add (Basically I have an input Fourier transform which I mask, reconstruct the underlying image using an algorithm, and then try to replace the existing values in the input Fourier Transform in the Fourier transform of the reconstructed image.) They are masked in a mutually exclusive way. But the Fourier transform obtained after adding them is not smooth and hence its inverse Fourier transform gives a garbage image. How do I add the two Fourier transforms/scale them to the same range so that they can be added to give a smooth Fourier Transform which can be inverted to get my underlying image? (The figure shows input1, input2 and their sum from top to bottom.)

enter image description here

Edit: In reply of @Peter K.'s comment, the masking pattern is generated as explained in section 4.9 and Figure 5 of https://arxiv.org/pdf/1811.08839.pdf (it is a Cartesian undersampling mask used for MRI sensor data which is in Fourier domain). A sample image from the data I am using is of size 64x64 -

enter image description here

  • $\begingroup$ Can you explain a little more how the masking is arrived at? It seems odd (to me) that masks are generated along one frequency axis but not the other. I'd expect the masks in the frequency domain to be circles or annuluses (rings). Also, would it be possible to share the actual images you use? That might allow us to see the data a bit more closely. $\endgroup$
    – Peter K.
    Jul 10, 2022 at 2:19
  • $\begingroup$ @PeterK., added an edit in reply to your comment, you may kindly check it. $\endgroup$
    – psj
    Jul 10, 2022 at 7:17
  • $\begingroup$ Section 4.9 doesn’t explain why the intensities of the two samplings would be different. The best way to explain what you did and how you got to where you are is to show us your code. $\endgroup$ Jul 10, 2022 at 14:02
  • $\begingroup$ @CrisLuengo, I am using a neural network for MRI reconstruction. So input to the neural net is the masked k-space (masked Fourier Transform i.e. FFT) and output is the reconstructed spatial domain image. Now, after getting the output of the neural net, as a post processing step, I am taking the FFT of the output, multiplying it by (1-mask) where 'mask' is used to undersample the input Fourier transform and then adding the masked input k-space to this (to replace the information which was present in the input k-space already). Then I take the IFFT of the sum to get the final output. $\endgroup$
    – psj
    Jul 10, 2022 at 18:26
  • $\begingroup$ @CrisLuengo I believe the input k-space range and the range of the FFT of the output of the network are different. But I am not sure how to bring them to the same range as they are complex-valued entities, and then add them to get a sensible IFFT. Could you please tell what part of the code can I share that can help you? $\endgroup$
    – psj
    Jul 10, 2022 at 18:29


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.