The RubberSheeting transformation  Basic Concepts The RubberSheeting transformation is based on geometric and mathematical theories similar to those of the homography, mentioned in section Basic Concepts  Homography which, due to their complexity they are outside the scope of this guide. This technique is called RubberSheeting because figuratively it considers a deformed map as a sheet made of rubber which is stretched to some nails representing the correcting reference points. Fig. BC.R1 shows this approach: the green area represents the deformed map, whereas the black and blue spots represent the control points to which we want to correct the deformation.
Fig. BC.R1 – The RubberSheeting transformation considers a deformed map as a sheet made of rubber which is stretched to some nails representing the correcting points.
As for homography, the RubberSheeting transformation relies on the concept that, given 4 points in a reference system, it is always possible to transform them into the corresponding 4 points in another reference system, as shown in Fig. BC.R2. This also means that the RubberSheeting algorithm transforms a quadrilateral from one reference system into the corresponding quadrilateral in another reference system. As we'll see below, the algorithm is a complex matrix calculation, but simplifying it, we can say that an internal point on the first quadrilateral is “mapped” to the second quadrilateral by respecting the proportion of its projections a, b, c, d, e, f, g, h on the sides. These projections are the divided parts of the sides formed by tracing on the point the two straight lines parallel to the axis.
Fig. BC.R2 – The RubberSheeting transforms a quadrilateral from one reference system into the corresponding quadrilateral in another system.
Simplifying the mathematical algorithms into a more understandable geometrical form, it is interesting to see the conceptual difference between the schema of the Homography (Fig. BC.H1 in section Basic Concepts  Homography) and the one of the RubberSheeting shown in Fig. BC.R2. The difference is that the Homography gives priority to alignments, whereas the RubberSheeting gives priority to linear proportions. As shown in Fig. BC.R3 in fact, the diagonals intersection of the first quadrilateral is still mapped by the Homography in the diagonals intersection of the second quadrilateral, whereas it is mapped by the RubberSheeting in the intersection of its side projections.
Fig. BC.R3 – The difference between Homography and RubberSheeting: the first gives priority to alignments, whereas the second gives priority to linear proportions. The algorithm The different mapping performed by RubberSheeting compared to Homography (Fig. BC.R3) is obviously based on a different algorithm. The Homography algorithm is based on formulae (6) in section Basic Concepts  Homography, whereas the RubberSheeting calculation is based on the following formulae:
While they differ from the Homography, mainly because they are nonfractional (*), the approach remains the same. The XY on the left of the equal sign are the coordinates to be calculated for the second reference system, given coordinates xy in the first reference system. The calculation is a function of 8 unknown transformation parameters a, b, c, d, e, f, g, h (not to be confused with the projections of Fig. BC.R2 and Fig. BC.R3) and therefore at least 4 known points in both systems are required.
The formulae above are then transformed in a set of 8 equations for the 4 known points in both reference systems (indicated with indexes 1, 2, 3, 4) and then these equations are transformed in matrix form in order to simplify the resolution.
The 8 transformation parameters have the following meaning:
a = scale factor in X direction proportional to the multiplication X ● Y. b = fixed scale factor in X direction with scale Y unchanged. c = scale factor in X direction proportional to Y distance from origin. d = origin translation in X direction. e = scale factor in Y direction proportional to the multiplication X ● Y. f = fixed scale factor in Y direction with scale X unchanged. g = scale factor in Y direction proportional to X distance from origin. h = origin translation in Y direction.
Finally, once these 8 parameters are calculated, it is easy to use them for transforming any point from the first reference system to the second using the transformation formulae at the beginning of this section.
In the Transformations  Rubber Sheeting section you'll find the explanation how to apply this transformation with CorrMap.
