MATLAB Answers

How to rotate image by using orientation regionprops?

31 views (last 30 days)
Najwa Samlan
Najwa Samlan on 13 Oct 2019
Commented: Image Analyst on 14 Oct 2019
Hi. May I know how to rotate signature image by using orientation regionprops and then I want to display it at axis ? Below is my code
image1= getimage(handles.axes1)
bw1=imresize(image1,[128 256])
%binarization
bw1=im2double(bw1);
bw1 = im2bw(bw1,0.90);
%thinning
BW3=bwmorph(~bw1,'thin',0.9)
stats=regionprops(BW3,'Orientation','Centroid')
ori=[stats.Orientation]
c=stats.Centroid
x=c(1)+10*cosd(ori)
y=c(2)-10*sind(ori)
line([c(1) x],[c(2) y])
%display result at axes2
axes(handles.axes2)
imshow(BW3)

  0 Comments

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 13 Oct 2019
Try this
meanAngle = mean(ori)
BW3 = imrotate(BW3, -meanAngle);

  2 Comments

Najwa Samlan
Najwa Samlan on 14 Oct 2019
I already try using your suggestion but the outcomes are not like what I want. The image do not rotate at the centre of x and y.
Image Analyst
Image Analyst on 14 Oct 2019
It rotates the image about the center of the image. If you don't want that, then maybe you can use imtranslate() before imrotate(), or else use the translation and rotation in your own matrix. See Wikipedia

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!