image rotation along x and y axis using bilinear interpolation

I am rotating the image by theta1 along x axis and theta2 along y axis using the mapping equation: f(x,y)=f([cos(theta1)*x+sin(theta1)*y]/cos(theta1-theta2),[-sin(theta2)*x+cos(theta2)*y]/cos(theta1-theta2)). Now I am facing two problems here: 1. if theta1 and theta2 are taken different then image gets cropped. So, how to set the size of output that no matter what you take as theta1 and theta2, the complete image is obtained. 2. How to re-rotate the above result to get the intial image again using bilinear interpolation.
I am enclosing the code, Please do help me.

Answers (1)

Why reinvent the wheel? Just use imresize(). It has a bilinear option.

5 Comments

Actually I am re-rotating in order to get back to original image.The inter_img is the rotated image and fin is the desired image that I require after re-rotating.
I don't see that as a reason to not use imresize(). It will work in both directions of course.
I am not getting how to do. If you can just explain it with matlab program.
rotatedImage = imrotate(originalImage, 30); % Rotate 30 degrees.
I got it, but what if I have to rotate y axis with different angle?

Sign in to comment.

Asked:

on 4 Feb 2015

Commented:

on 5 Feb 2015

Community Treasure Hunt

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

Start Hunting!