MATLAB: How the “radon” transform works in matlab???

digital image processingimage analysisimage processingImage Processing Toolboximage segmentationradon

I need to find the thickness of a segmented object that is in binary image. So i am trying to use 'radon' transform to find the intensity values with the value as "1" (white color) along the specified orientation. In this way i can find thickness at specified locations as i want. Before using this function 'radon' i want to understand how it works. But i am not able to understand how radon works. As an example i took one simple image and coded as follows.
I = zeros(100,100);
I(1:25,1:25) = 1;
figure;imshow(I)
[R,xp] = radon(I, 90);
figure;plot(R)
I plotted R and checked for theta = 90,0. The plot shows impulse wave for both and there is a shift for theta = 0. The sizeĀ® = 145. How does R takes 145, when the size of image is only 100? How could even for theta = 0, R gives some intensity values?? Can anyone give me a clear understanding on this radon??

Best Answer

How does R takes 145, when the size of image is only 100?
RADON is choosing a grid size for R that will capture the projections of the entire 100x100 grid at all angles theta. At theta=45, the length of the grid's projection shadow is sqrt(2)*100 and so something like R=145 is required to cover it.
How could even for theta = 0, R gives some intensity values??
You have to explain why you don't think R should have intensity values. Your 25x25 square is viewable at all angles, theta.