I am trying to understand different filters' and other things' effects on Radon Transform by using MATLAB. First I upload an image, then take its Radon transform with radon function and then reconstruct it with iradon function.

Now I wanted to see the difference between undersampling the projection data by reducing the number of parallel beams by a factor of 4 and reducing the number of rotation angles by a factor of 4. However according to what I understood from radon and iradon functions' descriptions, I can only change the number of rotation angles. Is not it true? If not, what is the way to do it?

Here is what I do to decrease the number of rotation angles by a factor of 4:

I = imread ('asdasd.tif'); 
Rad = radon (img,0:4:179); 
I_ram = iradon(Rad,0:4:179,'linear','Ram-Lak'); 
I_ham = iradon(Rad,0:4:179,'linear','Hamming');

Unfortunately you can't do this with the radon function as it comes. However, the function is written in MATLAB form (as opposed to being a compiled function), so you could extend the function yourself. This would also be a good way to learn more about the process.

To reconstruct properly, you would also need to perform edits on the iradon function.

An alternative way to get what you're looking for would be to get projections as they come from radon, then reduce the array size by averaging the projection rays in groups of 4. You would probably want the reconstruction to be the same size, so you'd need to repeat the averaged values 4 times in the argument to iradon. So maybe something like this:

p = phantom ();
proj = radon (p, 0:179);
proj_avg = proj (1:4:end,:) + proj (2:4:end,:) ...
         + proj (3:4:end,:) + proj (4:4:end,:);
proj_rep = reshape (repmat (proj_avg',1,4)', [], length (proj(:,1)))';
recon_few_beams = iradon (proj_rep, 0:179);

I do not think that you can reduce the number of parallel beams. I would also believe that even if there was a way to do it, that would not have solved your problem. This is because, in that case an additional question would arise - Which columns(or rows) of the data matrix will be struck by the beams.

If you think of the Radon Transform, it talks about projections of the data taken at multiple angles. Hence, it does not talk about what columns should be involved or not. Hence, that is the reason I can figure out, for the absence of any such option of reducing the number of beams.

If you change the number of angles, it would give you a good idea of its effect on the reconstruction. Greater the number, the better the reconstruction will be.


Your Answer

