Package georegression.fitting.curves
Class RefineEllipseEuclideanLeastSquares_F64
java.lang.Object
georegression.fitting.curves.RefineEllipseEuclideanLeastSquares_F64
Minimizes the Euclidean distance between an ellipse and a set of points which it has been fit to. Minimization
is done using a user configurable unconstrained optimization algorithm. The error for each observation 'i' is
computed using the following equation:
[x,y] = [p_x,p_y] - ([x_0,y_0] - a*R*X)
where R = [cos(phi),-sin(phi);sin(phi),cos(phi)] and X = [a*cos(theta),b*sin*(theta)], where theta is the angle
of the closest point on the ellipse for the point.
NOTE: This implementation does not take advantage of the sparsity found in the Jacobian. Could be speed up a bit.
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
class
-
Field Summary
-
Constructor Summary
ConstructorDescriptionDefaults to a robust solver since this problem often encounters singularities.RefineEllipseEuclideanLeastSquares_F64
(UnconstrainedLeastSquares<org.ejml.data.DMatrixRMaj> optimizer) -
Method Summary
Modifier and TypeMethodDescriptiondouble
getFound()
boolean
refine
(EllipseRotated_F64 initial, List<Point2D_F64> points) void
setFtol
(double ftol) void
setGtol
(double gtol) void
setMaxIterations
(int maxIterations)
-
Field Details
-
optimizer
-
-
Constructor Details
-
RefineEllipseEuclideanLeastSquares_F64
public RefineEllipseEuclideanLeastSquares_F64(UnconstrainedLeastSquares<org.ejml.data.DMatrixRMaj> optimizer) -
RefineEllipseEuclideanLeastSquares_F64
public RefineEllipseEuclideanLeastSquares_F64()Defaults to a robust solver since this problem often encounters singularities.
-
-
Method Details
-
setFtol
public void setFtol(double ftol) -
setGtol
public void setGtol(double gtol) -
setMaxIterations
public void setMaxIterations(int maxIterations) -
getOptimizer
-
refine
-
getFound
-
getFitError
public double getFitError() -
createError
-
createJacobian
-