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 java.lang.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

Constructors
Constructor and Description
`MotionSe2PointSVD_F64()`
• ### Method Summary

All Methods
Modifier and Type Method and Description
`int` `getMinimumPoints()`
Minimum number of points required to compute a model.
`Se2_F64` `getTransformSrcToDst()`
Returns the estimated motion from the 'from' coordinate system into the 'to' coordinate system.
`boolean` ```process(java.util.List<Point2D_F64> srcPts, java.util.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'.
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Constructor Detail

• #### MotionSe2PointSVD_F64

`public MotionSe2PointSVD_F64()`
• ### Method Detail

• #### getTransformSrcToDst

`public Se2_F64 getTransformSrcToDst()`
Description copied from interface: `MotionTransformPoint`
Returns the estimated motion from the 'from' coordinate system into the 'to' coordinate system.
Specified by:
`getTransformSrcToDst` in interface `MotionTransformPoint<Se2_F64,Point2D_F64>`
Returns:
motion
• #### process

```public boolean process(java.util.List<Point2D_F64> srcPts,
java.util.List<Point2D_F64> dstPts)```
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 interface `MotionTransformPoint<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 interface `MotionTransformPoint<Se2_F64,Point2D_F64>`
Returns:
The number of points required to compute a model.