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, XFields inherited from class MathTransformBuilder
mtFactory - 
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAffineTransformBuilder(List<MappedPosition> vectors) Creates AffineTransformBuilder for the set of properties. - 
Method Summary
Modifier and TypeMethodDescriptionprotected voidFills A matrix for m = (ATPA)-1 ATPx' equationintReturns the minimum number of points required by this builder, which is 3.protected GeneralMatrixReturns the matrix for Projective transformation setup as Affine.Methods inherited from class ProjectiveTransformBuilder
calculateLSM, computeMathTransform, fillPMatrix, fillXMatrix, getCoordinateSystemType, includeWeightsMethods 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:
 IllegalArgumentExceptionMismatchedDimensionExceptionMismatchedReferenceSystemException
 
 - 
 - 
Method Details
- 
getMinimumPointCount
public int getMinimumPointCount()Returns the minimum number of points required by this builder, which is 3.- Overrides:
 getMinimumPointCountin 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:
 getProjectiveMatrixin classProjectiveTransformBuilder- Returns:
 - Matrix M.
 
 - 
fillAMatrix
protected void fillAMatrix()Description copied from class:ProjectiveTransformBuilderFills A matrix for m = (ATPA)-1 ATPx' equation- Overrides:
 fillAMatrixin classProjectiveTransformBuilder
 
 -