I want to simulate the limited angle Radon transform reconstruction problem by employing the Fourier-Slice Theorem which states that $$ \mathbf{F}\left(\mathbf{R} f\right) (\theta, \sigma) = \mathbf{F}(f)(\sigma\theta), $$ where $\mathbf{F}$ denotes the respective Fourier transforms and $\mathbf{R}$ denotes the Radon transform.

What I now did is instead of calculating the limited angle Radon transform and its reconstruction, I calculated the 2D Fourier transform of $f$, set the "invisible" Fourier coefficients to zero, and applied the inverse 2D Fourier transform to reconstruct the image. The Matlab code and image are given below.

I would expect this approach the give the same result as using the limited angle Radon transform, but comparing the reconstructions, we see that there are a lot more artefacts using the first method.

My first question is where do these additional artefacts come from? Furthermore, I noted that padding my image with zeros resolves this issue. So my second question would be why padding seems to be useful here?

Thank you in advance!

% Reconstruction using the Fourier transform
N = 256;
f = phantom(N);
fhat = fftshift(fft2(f));
x = linspace(-N/2, N/2-1, N);
[X,Y] = meshgrid(x, x);
wedge = zeros(N);
wedge(abs(Y)<=X) = 1;
fhat_wedge = fhat.*wedge;
frec = ifft2(fhat_wedge);
figure, imagesc(abs(frec)), axis off

Limited angle reconstruction with Fourier-Slice Theorem

% Reconstruction using limited angle Radon transform
thetas = linspace(-45, 45, 180);
g = radon(f, thetas);
frec_radon = iradon(g, thetas);
figure, imagesc(frec_radon), axis off

Limited angle reconstruction via Radon transform



Your Answer

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