Ask Your Question

ellipse approximation of blob using contours moments : confusing orientation angle

asked 2015-11-02 11:07:20 -0600

lounice gravatar image

updated 2015-11-02 11:10:15 -0600

Dear all,

I want to draw the ellipse approximating an isolated blob (the largest contour found with findContours). Using the formulas of paper : for the major and minor axes I obtain consistent axes lengths. However using the formula to compute the orientation angle from the same paper( and which I find almost everywhere) I obtain odd results. This is the formula : theta = 0.5atan (2mu11 / (mu20-mu02)) ;

As long as the blob (which represents a human silhouette) is not close to horizontal, the formula returns a consistent value of the orientation angle but as soon as the blob becomes almost horizontal the sign of the orientation angle is flipped suddenly. I know the reason of such a behavior. If we refer to the formula above : when the blob is not horizontal mu20 is smaller than mu02. This is true while the blob starts climbing (falling) counter clockwise until it reaches an orientation of about 45 degrees. When it reaches that value the pxels distribution of the blob becomes horizontal rather than vertical and mu20 becomes larger than mu02 which implies inversion of the angle's sign. I don't know if this formula is correct.

Thanks a lot for your help.

edit retag flag offensive close merge delete


May be an answer here

LBerger gravatar imageLBerger ( 2015-11-02 11:38:18 -0600 )edit

Hi L.Berger. I have already read it before posting my question. Actually it gives the same formula. Thank you anyways.

lounice gravatar imagelounice ( 2015-11-02 11:41:16 -0600 )edit

Another thing is confusing me... the coordinates system in openCV in linux... for the contours, moments and drawing function.

lounice gravatar imagelounice ( 2015-11-02 11:44:52 -0600 )edit

What's exactly your problem? OpenCV use mathematical definition for all this things.

LBerger gravatar imageLBerger ( 2015-11-02 15:08:45 -0600 )edit

I think that's not a good way to use this forum. First when you have a question use Question and not Answer for a question. You shoud delete your "answer" and insert a new comment . Second if you have got a problem with fitellipse function forum user like to see some code or image with your problem to help you.

LBerger gravatar imageLBerger ( 2015-11-03 01:20:48 -0600 )edit

@ L.Berger. Please check the poster's ID of the answer you are mentionning. You can see that it is not me. Anyways. I come to comment on my original question. After reading more carefuly drVit's document you have posted I managed to fetch consistent values or the orientation angle. Depending on the sign of the nominator and denominator in the ATAN expression.


lounice gravatar imagelounice ( 2015-11-05 14:44:24 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2015-11-02 20:33:50 -0600

Try to use fitellipse function.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2015-11-02 11:07:20 -0600

Seen: 2,022 times

Last updated: Nov 02 '15