From: Erik R. Valdes-Estrada on
> ==============
>
> I think you mean
>
> X2=iradon(F,theta, ~, ~, ~,size(X1,2))
>
> > I think this is because the length of the projection 'F' produced by matlab's radon has been inaccurately determined.
> ================
>
> radon does not compute a projection length (see doc radon). It uses a cruder algorithm that is basically the transpose of iradon() after subdividing the pixels.
>
++++++++++++++++++++++++++++++++
> Regarding the 1 pixel discrepancy, I tend to think iradon just uses different rules from radon to decide where the coordinate origin is, always rouding it to the nearest pixel or something...
++++++++++++++++++++++++++++++++
>


===============================
No, i meant X2=iradon(F,theta, size(X1,2)),
we don't need ~,~,~, because those are string inputs and OUTPUT_SIZE which in this case is-> size(X1,2) is the third and last numeric input allowed .

===============================

....even if you can force iradon to give reconstructions of the same dimension as the original, they are not properly returned because the error on the projection F (aka sinogram), so F's rows are proportional to the detectors (or pixels) but radon ads some more (maybe as a safety measure), but they must forgot to consider this on the iradon, and obviously also to properly test it.

++++++++++++++++
thats a "BIJECTION ISSUE"
++++++++++++++++
From: Alejandro Ramos on
"Erik R. Valdes-Estrada" <vaee(a)yahoo.com> wrote in message <hsuo1q$4no$1(a)fred.mathworks.com>...
> > ==============
> >
> > I think you mean
> >
> > X2=iradon(F,theta, ~, ~, ~,size(X1,2))
> >
> > > I think this is because the length of the projection 'F' produced by matlab's radon has been inaccurately determined.
> > ================
> >
> > radon does not compute a projection length (see doc radon). It uses a cruder algorithm that is basically the transpose of iradon() after subdividing the pixels.
> >
> ++++++++++++++++++++++++++++++++
> > Regarding the 1 pixel discrepancy, I tend to think iradon just uses different rules from radon to decide where the coordinate origin is, always rouding it to the nearest pixel or something...
> ++++++++++++++++++++++++++++++++
> >
>
>
> ===============================
> No, i meant X2=iradon(F,theta, size(X1,2)),
> we don't need ~,~,~, because those are string inputs and OUTPUT_SIZE which in this case is-> size(X1,2) is the third and last numeric input allowed .
>
> ===============================
>
> ...even if you can force iradon to give reconstructions of the same dimension as the original, they are not properly returned because the error on the projection F (aka sinogram), so F's rows are proportional to the detectors (or pixels) but radon ads some more (maybe as a safety measure), but they must forgot to consider this on the iradon, and obviously also to properly test it.
>
> ++++++++++++++++
> thats a "BIJECTION ISSUE"
> ++++++++++++++++

_________________________________________________

I think, this transform has a group delay of one sample. This is reflected in one sample in the beginning and at final in both dimensions. Because a first overview is a basic filter. I made a test with this code:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc,clear,close all
iptsetpref('ImshowAxesVisible','on')
I = zeros(500,500);
I(25:75, 25:75) = 1;
theta = 0:360;
[R,xp] = radon(I,theta);
figure
imshow(I);
figure
imshow(R,[],'Xdata',theta,'Ydata',xp,'InitialMagnification','fit')
xlabel('\theta (degrees)')
ylabel('x''')
colormap(hot), colorbar
J=iradon(R,theta);
figure
imshow(J)
size(I)
size(J)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Diferences between original image and reconstructed image are by cause of rounded error and residual terms in transform. Maybe you can find an explanation in this paper; is old, but explains basis of DTR.
http://amath.colorado.edu/pub/wavelets/papers/BEYLKI-1987.pdf