anyone can tell me about radon transform?

3 views (last 30 days)
I = imread('peppers.bmp');
A = im2double (I);
R = radon (A,0:180);
P = iradon (R,0:180);
this is the coding i use for radon transform and its inverse. the resulting image for theta 180 degree much clear rather than 90 degree. i don't understand the situation. why it is happen? thank you for your help.
  2 Comments
Andrew Newell
Andrew Newell on 20 Mar 2011
Could you post peppers.bmp? See Markup help (http://www.mathworks.com/matlabcentral/answers/help/markup) for how to do this.
si  kijang
si kijang on 21 Mar 2011
i have post peppers.bmp images to uploadhouse.com.
here is URL http://www.uploadhouse.com/viewfile.php?id=8735849

Sign in to comment.

Accepted Answer

Sean de Wolski
Sean de Wolski on 20 Mar 2011
The more angles you have, the more data is sampled, the higher quality an image you recover.
What are you trying to accomplish?
  3 Comments
Bjorn Gustavsson
Bjorn Gustavsson on 21 Mar 2011
No you don't get better reconstruction with radon/iradon by using angles between 0-360 than between 0-180. If you look at the equation for the radon transform you'll see that I(theta,l) == I(theta+pi,-l) since both are integrals of the intensities along the same line. You will/should get better reconstructions by using larger number of angles between 0-180 degrees - that will give you more unique information about the intensities (even if the line individual integrals becomes more and more equal as the angular separation decreases). (Check if I got the sign right in the equality...)
HTH,
Bjoern
si  kijang
si kijang on 21 Mar 2011
thanks for your answer.i don't understand about the intensities?where to see the intensities and what is their effect?
then, why need to convert image into double because if i did not do that, i can't perform the error measurement.thanks for your help.

Sign in to comment.

More Answers (1)

Sean de Wolski
Sean de Wolski on 21 Mar 2011
You will never be able to recover the same image as the original and some data will be lost as you are resampling twice (radon, iradon).
Instead of using your peppers image, use the phantom head provided by MATLAB or this phantom: http://www.mathworks.com/matlabcentral/fileexchange/29364-compressed-sensing-mri-phantom-v1-1
Which have features that can easily be detected. I've made this demo script for you to try; it'll take a minute or so to run but will provide you with an idea of what to expect.
P = phantom(256);
subplot(221);
imshow(P);
title('Original');
theta = 0:5:179.99;
Precon = iradon(radon(P,theta),theta);
subplot(222)
imshow(Precon);
title('0:5:179.99');
theta = 0:1:179.99;
Precon = iradon(radon(P,theta),theta);
subplot(223);
imshow(Precon);
title('0:1:179.99');
theta = 0:.1:179.99;
Precon = iradon(radon(P,theta),theta);
subplot(224);
imshow(Precon);
title('0:0.1:179.99');
Now zoom in on some the features to compare.
Ps. Bjorn answered your question correctly when he said don't use 0:360 but rather 0:<180
  5 Comments
Sean de Wolski
Sean de Wolski on 28 Mar 2011
Having the 'n' argument is a grandfather syntax that only calculates the radon transform at n points
open radon
to view what it says. Moral of the story: don't use the 3rd argument!
Sean de Wolski
Sean de Wolski on 20 May 2013
@Aissa, please ask this as a new question with a small example. These comments will be deleted.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!