Expanding on Transformation types in geo-referencing of QGIS?, I'm trying to understand the exact transformations used by QGIS, and how they differ. The georeferencer documentation is of course a good starting point, but I need more details :
Currently, the following Transformation types are available:
The Linear algorithm is used to create a world file and is different
from the other algorithms, as it does not actually transform the
raster. This algorithm likely won’t be sufficient if you are dealing
with scanned material.The Helmert transformation performs simple scaling and rotation
transformations.The Polynomial algorithms 1-3 are among the most widely used
algorithms introduced to match source and destination ground control
points. The most widely used polynomial algorithm is the second-order
polynomial transformation, which allows some curvature. First-order
polynomial transformation (affine) preserves collinearity and allows
scaling, translation and rotation only.The Thin Plate Spline (TPS) algorithm is a more modern georeferencing
method, which is able to introduce local deformations in the data.
This algorithm is useful when very low quality originals are being
georeferenced.The Projective transformation is a linear rotation and translation of
coordinates.
Specifically, what are the differences between linear, Helmert and projective?
The "linear" algorithm creates a world file, that includes 6 parameters allowing to define translation (lines 5 and 6), scaling (1 and 4) and rotation (2 and 3). Although, I remember reading somewhere that QGIS does not honour rotation in world files (?), but I cannot trace the source of this info – empirically, it certainly feels as if the "linear" fit in the georeferencer does not rotate the image.
The "Helmert" algorithm "performs simple scaling and rotation" (and translation, presumably, as you can use it to "move" an image to any coordinate)
The "Projective" transformation "is a linear rotation and translation of the coordinates".
I must confess, I cannot understand the differences between the above three.
In addition, a first-order polynomial "allows scaling, translation and rotation only".
In all cases, it seems to me that the algorithm uses fitting of the 6 parameters (2 each for translation, rotation and scale) to minimize the differences between GCP and target positions. Apart from different fitting strategies (plain least-square, vs. more robust fitting, outlier-tolerant or so), I do not see the differences, and in any case with 6 GCP the matrix being square, there should be an unique solution common to all.
On the other hand, I understand indeed how a second-order polynomial third-order polynomial and spline differ, of course. But this really gives only 4 strategies (5, if indeed linear does not do rotation): first order without rotation, first order, second order, third order and spline, for the 7 options available.
Best Answer
Linear transformation only set the offset and scale (no rotation), minimum two points required (raster is not resampled as the original pixels are preserved)
Helmert transformation is sometimes called orthogonal transformation as it preserves angles (4 parameters: offset x and y, rotation and scale), minimum two points required.
Polynomial 1 transformation is usually called affine transformation, it allows different scales in x and y direction (6 parameters, two independent linear transformations for x and y), minimum three points required.
Polynomial 2 similar to polynomial 1 but quadratic polynomials are used for x and y. No global scale, rotation at all.
Thin plate spline uses several local polynomials, but it minimizes the curvature of the polynomial surface.
Projective transformation is not for maps, as it is a transformation between two non-parallel plain using central projection (it may be good for a non-perpendicular photo of a map).
I wouldn't offer to use Polynomial 2, 3 thin plate spline and projective transformation for real maps, they shouldn't be so distorted.