How do I draw a line along the major axis as found with regionprops

I have used the regionprops to find the MajorAxisLenth of each object in my image. How do I draw a line along the major axis?

 Réponse acceptée

Walter Roberson
Walter Roberson le 29 Juin 2011
If you get the Centroid and Orientation and MajorAxisLength properties, then this becomes mostly a traditional y = m*x + b problem, where m is tan() of the Orientation and b is chosen so that the line passes through the Centroid.
Or even easier, MajorAxisLength * cosd(Orientation) to get the x axis coordinate difference, center that around the Centroid, likewise MajorAxisLength * sind(Orientation) to get the y coordinate difference, center that around the Centroid; then line() between the two endpoints.

4 commentaires

How do I get the other points meaning the x and y co-ordinates of the ends of the major axis on the object?
Eric T
Eric T le 23 Juin 2014
Modifié(e) : Eric T le 23 Juin 2014
Pooja: say you have deltax and deltay, and centroid coordinate is x,y. Then the line ends are:
xVals=[x-deltax/2 x+deltax/2]
yVals=[y-deltay/2 y+deltay/2]
line(xVals,yVals) will plot the line.
What is delta x and delta y?
It's the width of the bounding box.
Now they have bwferet() so look into that.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by