I was wondering if anyone encountered this issue.
I can reconstruct images from matlab that resembles the original image, however, the actual values are always different.
For example, original image have values in the matrix ranging from 0 to 1, while my reconstructed image ranges from -0.2 to 0.4 for example.
The reconstructed image look similar to the original image though, just that the data in the image are of different scales.
this is a sample code of what i mean.
p=phantom(64);
theta=0:1:179;
r=radon(p,theta);
ir=iradon(r,theta);
figure
subplot(1,2,1);imagesc(p)
subplot(1,2,2);imagesc(ir)
Those results aren't quite what I found.
Remember that the Inverse Radon Transform can only approximate the reconstruction of the original image. With only 180 views, there's bound to be some differences.
The Radon transform inherently causes some information to be lost because pixels have to be projected onto a new coordinate system and re-binned - both during projection and back projection. This causes the reconstructed image to be degraded slightly. The Radon transform is not identically invertible like the Fourier Transform.
For better results, try using a larger image size and more viewing angles.
And also try using a different filter (the F in F.B.P.) such as the Shepp-Logan, which reduces high frequencies and lessens overshoot.