MATLAB Answers

find out the orientation, length and radius of curved rectangular object

25 views (last 30 days)
Tai-Yen Chen
Tai-Yen Chen on 18 Jul 2012
I have a image as shown as fig.1.I am trying to fit this binary image with a curved rectangular (fig.2)to figure out:
1. the orientation (the angle between the long axis and the horizontal axis of the curved rectangle)
2. the length (l) and radius (R) of the object. What is the best way to do it?
My very naive idea is using least square fit to fit the boundary of the object and find out these information. However it turns out there is no equation for capped rectangle. In matlab there is a function called rectangle can create the capped rectangle perfectly however it seems just for the plot purpose and can not be implanted into the least square fit. Any help or clue is greatly appreciated.
Thanks for the help.

  0 Comments

Sign in to comment.

Answers (2)

Ryan
Ryan on 19 Jul 2012
Have you looked at MF regionprops()?

  2 Comments

Walter Roberson
Walter Roberson on 19 Jul 2012
That can give major and minor axes, and eccentricity equivalent to an ellipse, but an ellipse is not what is desired in this situation.
Tai-Yen Chen
Tai-Yen Chen on 19 Jul 2012
Yes, Walter is right. I do check the regionprops but did not meet my purpose.

Sign in to comment.


Image Analyst
Image Analyst on 19 Jul 2012
Edited: Image Analyst on 19 Jul 2012
John D'Errico's File Exchange http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A679 has a minimum bounding rectangle function http://www.mathworks.com/matlabcentral/fileexchange/34767-a-suite-of-minimal-bounding-objects. The rectangle can be at any angle. I think this should give you what you want, or close enough (especially considering the very low resolution of your image).

  1 Comment

Tai-Yen Chen
Tai-Yen Chen on 19 Jul 2012
Hi image Analyst, This is indeed a great start. But just out of curiosity, if I do have a high resolution image, will you have other suggestion on solving this issue?

Sign in to comment.

Sign in to answer this question.