Change condition on parallel ellipse case so can only calculate t if necessary

pull/3936/head
Deanna Hood 10 years ago
parent 5a552b6d8d
commit 37f77e7397
  1. 5
      modules/imgproc/src/shapedescr.cpp

@ -446,9 +446,8 @@ cv::RotatedRect cv::fitEllipse( InputArray _points )
// store angle and radii // store angle and radii
rp[4] = -0.5 * atan2(gfp[2], gfp[1] - gfp[0]); // convert from APP angle usage rp[4] = -0.5 * atan2(gfp[2], gfp[1] - gfp[0]); // convert from APP angle usage
t = sin(-2.0 * rp[4]); if( fabs(gfp[2]) > min_eps )
if( fabs(t) > min_eps ) t = gfp[2]/sin(-2.0 * rp[4]);
t = gfp[2]/t;
else // ellipse is rotated by an integer multiple of pi/2 else // ellipse is rotated by an integer multiple of pi/2
t = gfp[1] - gfp[0]; t = gfp[1] - gfp[0];
rp[2] = fabs(gfp[0] + gfp[1] - t); rp[2] = fabs(gfp[0] + gfp[1] - t);

Loading…
Cancel
Save