Package georegression.fitting.se
Class MotionSe2PointSVD_F64
java.lang.Object
georegression.fitting.se.MotionSe2PointSVD_F64
- All Implemented Interfaces:
MotionTransformPoint<Se2_F64,
Point2D_F64>
public class MotionSe2PointSVD_F64
extends Object
implements MotionTransformPoint<Se2_F64,Point2D_F64>
Finds the rigid body motion which minimizes the different between the two sets of associated points in 2D. The rotation is computed from the SVD of a cross correlation matrix.
The mean square error function that is minimized is:
f(p) = (1/N) sum( i=1:N , ||x_i - R(theta)*p_i + T||2 )
where theta is the angle of rotation and T is the translation, x is the set of 'to' points
and p is the set of 'from' points.
Based upon the sketch of Arun et al. 1987 provided in: D.W. Eggert, A. Loruso, R.B. Fisher, "Estimating 3-D Rigid Body Transformation: A Comparison of Four Major Algorithms" Machine Vision and Applications 1997
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
Minimum number of points required to compute a model.Returns the estimated motion from the 'from' coordinate system into the 'to' coordinate system.boolean
process
(List<Point2D_F64> srcPts, List<Point2D_F64> dstPts) Processes the sets of corresponding points and finds a transformation which when applied to 'srcPts' will minimize the difference with the 'dstPts'.
-
Constructor Details
-
MotionSe2PointSVD_F64
public MotionSe2PointSVD_F64()
-
-
Method Details
-
getTransformSrcToDst
Description copied from interface:MotionTransformPoint
Returns the estimated motion from the 'from' coordinate system into the 'to' coordinate system.- Specified by:
getTransformSrcToDst
in interfaceMotionTransformPoint<Se2_F64,
Point2D_F64> - Returns:
- motion
-
process
Description copied from interface:MotionTransformPoint
Processes the sets of corresponding points and finds a transformation which when applied to 'srcPts' will minimize the difference with the 'dstPts'.- Specified by:
process
in interfaceMotionTransformPoint<Se2_F64,
Point2D_F64> - Parameters:
srcPts
- The points which are to be transformed. Not modified.dstPts
- The points that are being compared against. Not modified.- Returns:
- true if the computation successfully produced a solution and false if not.
-
getMinimumPoints
public int getMinimumPoints()Description copied from interface:MotionTransformPoint
Minimum number of points required to compute a model.- Specified by:
getMinimumPoints
in interfaceMotionTransformPoint<Se2_F64,
Point2D_F64> - Returns:
- The number of points required to compute a model.
-