ellipse approximation of blob using contours moments : confusing orientation angle

Dear all,

I want to draw the ellipse approximating an isolated blob (the largest contour found with findContours). Using the formulas of paper :http://goo.gl/yvcUO5 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 close merge delete

May be an answer here

( 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.

( 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.

( 2015-11-02 11:44:52 -0600 )edit

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

( 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.

( 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.

Thanks.

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

Sort by ยป oldest newest most voted

Try to use fitellipse function.

more

Stats

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

Seen: 1,988 times

Last updated: Nov 02 '15