What does the Matlab function implement? Please Explain function [R] = SomeFunct
ID: 2314629 • Letter: W
Question
What does the Matlab function implement?
Please Explain
function [R] = SomeFunction(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 SomeFunction')
end
Explanation / Answer
This function is a Rotation of image and displays it
SomeFunction is a function name which takes the img(image) , theta for which the image has to be rotated
and thetaStep - increment in angle i.e. resolution
img is a 2-D image
[x,y]=size(img) take the no. of values in x direction and y and stores the values in x , y respectively
R = zeros((theta/thetaStep)+1,x) ; defines R as 2-d matrix for total no. of values of theta and x
angles = 0:thetaStep:theta; is a vector of angles
rotatedImage = zeros(x,y,length(angles)); defines as 3-D array to store the dimensions of new x,y for
each angle value in rotated image
for i=1:length(angles) for loop defined for total no. of angles
rotatedImage(:,:,i) = imrotate(img,angles(i),'nearest', 'crop');
imroate takes the img values and rotates to each angle value specified in counterclockwise by default4
nearest is a method of interpolation to which this function gives the ouput values
crop - Make output image the same size as the input image , cropping the rotated image to fit
R(i,:) = sum(rotatedImage(:,:,i),1);
R stores the values for each angle in a row matrix
sum outputs a row matrix by summing all the column values if rotatedImage for each angle value
Thus R is a matrix of projections in each row for x columns
mat2gray converts the matrix to gray image
imshow(R) displays image
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.