I am wondering the detail of the filtered backprojection.

Suppose I have a projection file:

$p(s,\theta)$=[1 2 3 1 2]

Then to get its filtered backprojection version using ramp filter, I should

  1. apply FFT to it, to get its Fourier version $P(\omega,\theta)$
  2. To use |$\omega$| to multiply $P(\omega,\theta)$
  3. Backprojection

I am a little confused at second step here.

Using the numeric example above, to apply FFT to [1 2 3 1 2], we will get a complex sequence

   9.0000 + 0.0000i 
  -1.0000 - 1.1756i
  -1.0000 + 1.9021i
  -1.0000 - 1.9021i
  -1.0000 + 1.1756i

Should I apply |$\omega$| to both real and complex part of the sequence above, then do inverse FFT? Or should I only take the magnitude of above sequence, apply |$\omega$| to the magnitude, then do inverse FFT?

Either way, it seems I will get a complex sequence as the final results, but shouldn't the filtered projection be a real sequence? Anyone give me some pointers here? Thanks


I did it by creating a convolution kernel, then FFT the kernel, FFT the projection file, then multiply these two, then do IFFT to the product. Then the result of the IFFT is the filtered backprojection.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.