The Rubber-Sheeting transformation - Basic Concepts
The Rubber-Sheeting 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 Rubber-Sheeting 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 Rubber-Sheeting 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 Rubber-Sheeting 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 Rubber-Sheeting 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 Rubber-Sheeting 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 Rubber-Sheeting shown in Fig. BC.R2. The difference is that the Homography gives priority to alignments, whereas the Rubber-Sheeting 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 Rubber-Sheeting in the intersection of its side projections.
Fig. BC.R3 – The difference between Homography and Rubber-Sheeting: the first gives priority to alignments, whereas the second gives priority to linear proportions.
The different mapping performed by Rubber-Sheeting 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 Rubber-Sheeting calculation is based on the following formulae:
While they differ from the Homography, mainly because they are non-fractional (*), the approach remains the same. The X-Y on the left of the equal sign are the coordinates to be calculated for the second reference system, given coordinates x-y 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.