how can change the angle of image ?

Hi everyone I have image I want change the angle of this image to be horizontal how can I do it? Thank you

Answers (2)

something like this? Based on the method shown here: http://stackoverflow.com/questions/5770818/how-to-align-image-matlab
I = imread('http://up.arab-x.com/Apr12/Yen90992.jpg');
%# egde detection
BW = edge(rgb2gray(I), 'canny');
%# hough transform
[H T R] = hough(BW);
P = houghpeaks(H, 4, 'threshold',ceil(0.75*max(H(:))));
lines = houghlines(BW, T, R, P);
out = imrotate(I,lines(1).theta);
subplot(121)
imshow(I)
subplot(122)
imshow(out)
Image Analyst
Image Analyst on 27 Jul 2012
Perhaps imrotate() or imtransform()?

2 Comments

Yep I used this but what if I want rote the image with out known the angle Thanks Image Analyst :)
Ryan
Ryan on 27 Jul 2012
Edited: Ryan on 27 Jul 2012
I would tackle it with this strategy:
  1. Find the top-most black pixel (in this case your upper left corner).
  2. Find the right-most black pixel (in this case your upper right corner).
  3. Use the change in width and height, along with trig to find the angle of rotation (it's like a triangle)
This strategy can be adapted to handle rotation the other way as well, but will not work past an 89 degree rotation in either direction.

Sign in to comment.

Asked:

on 27 Jul 2012

Community Treasure Hunt

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

Start Hunting!