Class SimilarTransformBuilder
Object
MathTransformBuilder
ProjectiveTransformBuilder
SimilarTransformBuilder
Builds MathTransform setup as Similar
transformation from a list of MappedPosition.
The The calculation uses least square method. The similar transform equation:
[ x'] [ a -b Tx ] [ x ] [ a*x - b*y + Tx ] [ y'] = [ b a Ty ] [ y ] = [ b*x + a*y + Ty ]In the case that we have more identical points we can write it like this (in Matrix):
[ x'1 ] [ x1 -y1 1 0 ] [ a ]
[ x'2 ] [ x2 -y2 1 0 ] [ b ]
[ . ] [ . ] [ Tx ]
[ . ] [ . ] * [ Ty ]
[ x'n ] = [ xn yn 1 0 ]
[ y'1 ] [ y1 x1 0 1 ]
[ y'2 ] [ y2 x2 0 1 ]
[ . ] [ . ]
[ . ] [ . ]
[ y'n ] [ yn xn 0 1 ]
x' = A*m
Using 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
ConstructorsConstructorDescriptionSimilarTransformBuilder(List<MappedPosition> vectors) Creates SimilarTransformBuilder 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 2.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
-
SimilarTransformBuilder
public SimilarTransformBuilder(List<MappedPosition> vectors) throws IllegalArgumentException, MismatchedDimensionException, MismatchedReferenceSystemException Creates SimilarTransformBuilder for the set of properties. The List of MappedPosition is expected.- Parameters:
vectors- list of MappedPosition- Throws:
IllegalArgumentExceptionMismatchedDimensionExceptionMismatchedReferenceSystemException
-
-
Method Details
-
fillAMatrix
protected void fillAMatrix()Description copied from class:ProjectiveTransformBuilderFills A matrix for m = (ATPA)-1 ATPx' equation- Overrides:
fillAMatrixin classProjectiveTransformBuilder
-
getMinimumPointCount
public int getMinimumPointCount()Returns the minimum number of points required by this builder, which is 2.- Overrides:
getMinimumPointCountin classProjectiveTransformBuilder- Returns:
- Returns the minimum number of points required by this builder, which is 2.
-
getProjectiveMatrix
Returns the matrix for Projective transformation setup as Affine. The M matrix looks like this:[ a -b Tx ] [ b a Ty ] [ 0 0 1 ]
- Overrides:
getProjectiveMatrixin classProjectiveTransformBuilder- Returns:
- Matrix M.
-