how can change the angle of image ?
3 次查看(过去 30 天)
显示 更早的评论
Hi everyone I have image I want change the angle of this image to be horizontal how can I do it? Thank you
0 个评论
回答(2 个)
Thomas
2012-7-27
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)
0 个评论
Image Analyst
2012-7-27
Perhaps imrotate() or imtransform()?
2 个评论
Ryan
2012-7-27
编辑:Ryan
2012-7-27
I would tackle it with this strategy:
- Find the top-most black pixel (in this case your upper left corner).
- Find the right-most black pixel (in this case your upper right corner).
- 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.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!