Class AffineTransformBuilder
Object
MathTransformBuilder
ProjectiveTransformBuilder
AffineTransformBuilder
Builds MathTransform setup as Affine transformation
from a list of MappedPosition. The calculation uses least square method. The Affine
transform equation:
[ x'] [ m00 m01 m02 ] [ x ] [ m00x + m01y + m02 ] [ y'] = [ m10 m11 m12 ] [ y ] = [ m10x + m11y + m12 ] [ 1 ] [ 0 0 1 ] [ 1 ] [ 1 ] x' = m * xIn the case that we have more identical points we can write it like this (in Matrix):
[ x'1 ] [ x1 y1 1 0 0 0 ] [ m00 ] [ x'2 ] [ x2 y2 1 0 0 0 ] [ m01 ] [ . ] [ . ] [ m02 ] [ . ] [ . ] * [ m10 ] [ x'n ] = [ xn yn 1 0 0 0 ] [ m11 ] [ y'1 ] [ 0 0 0 x1 y1 1 ] [ m12 ] [ y'2 ] [ 0 0 0 x2 y2 1 ] [ . ] [ . ] [ . ] [ . ] [ y'n ] [ 0 0 0 xn yn 1 ] x' = A*mUsing the least square method we get this result:
m = (ATA)-1 ATx'
- Since:
- 2.4
- Author:
- Jan Jezek
-
Field Summary
Fields inherited from class ProjectiveTransformBuilder
A, P, X
Fields inherited from class MathTransformBuilder
mtFactory
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AffineTransformBuilder
(List<MappedPosition> vectors) Creates AffineTransformBuilder for the set of properties. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Fills A matrix for m = (ATPA)-1 ATPx' equationint
Returns the minimum number of points required by this builder, which is 3.protected GeneralMatrix
Returns the matrix for Projective transformation setup as Affine.Methods inherited from class ProjectiveTransformBuilder
calculateLSM, computeMathTransform, fillPMatrix, fillXMatrix, getCoordinateSystemType, includeWeights
Methods inherited from class MathTransformBuilder
getDimension, getErrorStatistics, getMappedPositions, getMathTransform, getName, getSourceCRS, getSourcePoints, getTargetCRS, getTargetPoints, getTransformation, printPoints, setMappedPositions, setSourcePoints, setTargetPoints, toString
-
Constructor Details
-
AffineTransformBuilder
protected AffineTransformBuilder() -
AffineTransformBuilder
public AffineTransformBuilder(List<MappedPosition> vectors) throws IllegalArgumentException, MismatchedDimensionException, MismatchedReferenceSystemException Creates AffineTransformBuilder for the set of properties.- Parameters:
vectors
- list of MappedPosition- Throws:
IllegalArgumentException
MismatchedDimensionException
MismatchedReferenceSystemException
-
-
Method Details
-
getMinimumPointCount
public int getMinimumPointCount()Returns the minimum number of points required by this builder, which is 3.- Overrides:
getMinimumPointCount
in classProjectiveTransformBuilder
- Returns:
- the minimum number of points required by this builder, which is 3.
-
getProjectiveMatrix
Returns the matrix for Projective transformation setup as Affine. The M matrix looks like this:[ m00 m01 m02 ] [ m10 m11 m12 ] [ 0 0 1 ]
- Overrides:
getProjectiveMatrix
in classProjectiveTransformBuilder
- Returns:
- Matrix M.
-
fillAMatrix
protected void fillAMatrix()Description copied from class:ProjectiveTransformBuilder
Fills A matrix for m = (ATPA)-1 ATPx' equation- Overrides:
fillAMatrix
in classProjectiveTransformBuilder
-