scaling of iradon

4 visualizzazioni (ultimi 30 giorni)
Kaist
Kaist il 27 Giu 2011
Risposto: Prateekshya il 16 Ott 2024
In the case of filtered backprojection,
image = pi/N * sum(filtered sinogram)
(N = number of sampling views)
However, in iradon code,
img = img*pi/(2*length(theta));
I don't understand why the scale factor is pi/2/N

Risposte (1)

Prateekshya
Prateekshya il 16 Ott 2024
Hello Kaist,
The scaling factor in the filtered backprojection algorithm, as implemented in MATLAB's iradon function, can indeed be a bit confusing. Let's break down why the scaling factor is where N is the number of projection angles (i.e., the length of theta).
  • Filtered Backprojection: The core idea is to reconstruct an image from its projections (sinograms) by applying the inverse Radon transform. The Radon transform of a 2D function (image) integrates the function over lines at various angles, producing a set of projections.
  • Scaling in Theory: In the continuous domain, the inverse Radon transform involves integrating over all angles, which corresponds to the factor π. This factor arises because the Radon transform integrates over a semicircle of angles (0 to π).
  • Discrete Implementation: In practice, we perform this integration using a discrete set of angles (sampling views). The scaling factor accounts for the discrete sampling of angles when reconstructing the image from its projections.
  • Why in iradon: The additional factor of 1/2 comes from the way MATLAB normalizes the inverse Radon transform. This normalization ensures that the reconstructed image has the same scale as the original image. The factor ensures that the sum of the filtered projections over all angles properly approximates the continuous integral.
I hope this helps!

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by