image rotation along x and y axis using bilinear interpolation
Show older comments
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)
Image Analyst
on 4 Feb 2015
0 votes
Why reinvent the wheel? Just use imresize(). It has a bilinear option.
5 Comments
Kritika
on 4 Feb 2015
Image Analyst
on 4 Feb 2015
I don't see that as a reason to not use imresize(). It will work in both directions of course.
Kritika
on 5 Feb 2015
Image Analyst
on 5 Feb 2015
rotatedImage = imrotate(originalImage, 30); % Rotate 30 degrees.
Kritika
on 5 Feb 2015
Categories
Find more on Geometric Transformation and Image Registration in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!