# Radon Transform Implementation In Matlab

I know MATLAB has a built in Radon function, but I am working on implementing the radon transform in order to perform filtered back projection. As I started, my idea was multiple nested for loops for the summations at different theta values, this became pretty complex. I am not looking for source code, just suggestions on an approach. Any ideas are welcome.

Edit: Here is what I have come up with so far, it works fairly well to perform the radon transform and create a sinogram

%%%This function takes an image, theta max and theta step  %%%
%%%and returns a 2D matrix where each row is the projection%%%
%%%of the original image at different angles               %%%
%%%by rotating the image and summing the pixels            %%%
function [R] = RadonTransform(img, theta, thetaStep)

%Obtain the image size in the x-direction
[x,y] = size(img);
%Set a matrix R to hold the projection data
R = zeros((theta/thetaStep)+1,x);
%Set vector for the angles to take projections at
angles = 0:thetaStep:theta;
%Matrix to hold all the rotated images separately to prevent blurring
rotatedImage = zeros(x,y,length(angles));

%Loop to rotate image and add up values for the projections
for i = 1:(length(angles))
%rotate the image starting with theta = 0 degrees
rotatedImage(:,:,i) = imrotate(img,angles(i),'nearest', 'crop');
%Sum the columns of img to get projection data
%Each row of R contains a projection at a certain theta
R(i,:) = sum(rotatedImage(:,:,i),1);
end

%Convert the matrix to a gray scale image in the range 0 to 255
R = mat2gray(R);

figure
imshow(R)
title('My Sinogram')

end

• Why do you want to rotate the image? The Radon transformation is about shooting beams through the image at different angles, see here de.mathworks.com/help/images/…, check which pixels are hit, calculate the length of intersection with each hit pixel and summing up all intersection lengths weighted by the value of the pixel. Computationally, rotating the image is far more costly than this little trigonometry exercise. I'll gladly extend my answer or give you more advice. But this question actually lacks the question part. – Frederik Heber Jul 22 '15 at 8:21
• Frederik, I'm going to convert this question to a comment because it seems to be more comment-like than answer-like. But, if the OP gives more detail, please feel free to post your answer! – Peter K. Jul 22 '15 at 8:42