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.