How to apply Homography geo-referencing

Referring to the theoretical concepts and algorithms explained in section Basic concepts | Homography, it clearly shows that Homography transformation is applicable in all cases when we know at least 4 points in both the raster and the map coordinate systems, regardless of whether they are reference (grid) points or not. So this technique might be useful for maps that do not provide reference points, on the condition that we know in advance the coordinates of 4 map points and that the boundary of these 4 map points contains the other points that we want to retrieve from the map.

But if the map does not provide reference points, how can we obtain the coordinates of 4 of its points? Simply by surveying them in the field, i.e. go to the field with the map and find some reference points which are still present. If you are sure that the point on the map and the one found in the field are the same, you just survey it, and this point will then become one of your reference points.

Of course you should not limit the survey to just 4 points, you can include all corresponding map-real points you need in order to cover all those map points not present in the field that you want to transform. Fig. TR.H1 shows a map linked to a survey through some corresponding points (blue X) where the external perimeter includes the map points to transform (dark red X).



Fig. TR.H1 – The quadrilaterals on which the map-survey homography is calculated.


Once the survey has been performed, we have the coordinates of the surveyed reference points. To do so we simply need to calculate our survey in our preferred reference system. There are no constrains in this choice, for example we can simply adopt the local survey reference system which, in a theodolite survey, has the origin on the first station and is oriented in the direction of the zero value for horizontal angles.

The other problem is the following: having said that homography is based on a 4 points calculation, how do we define the quadrilaterals on our set of map-real points? In fact the corresponding map-real points we have found are randomly located, so how do we form the quadrilaterals on which to apply the transformation?

One method (the one adopted by CorrMap), is to first calculate a triangulation of all points, as is usually done for 3D terrain modeling, then consider all possible quadrilaterals that can be formed by joining all couples of adjacent triangles. This operation of course will create overlapping quadrilaterals, so we then need to apply the transformation to each quadrilateral and finally calculate the average results. This approach is quite convenient because it smoothes the possible different map deformation between adjacent quadrilaterals.

But of course the Surveyor might want to directly define the quadrilaterals on which to apply the transformation, in the case where he has knowledge about the map deformation. In this case in fact, he can define each single quadrilateral based on its different deformation compared to the others, as we'll see in paragraph Define quadrilaterals at the end of this section.

But there’s another issue to consider: the Homography algorithm directly migrates each single reference point of the map into its corresponding point in the survey reference system, i.e. non residuals are generated by the calculation. This means that every reference point is considered as having the same reliability as all the others. Is that correct?

No, it is not. In the sections Transformations | Affine and Barycentric we’ve seen that, when applying that calculation, reference points result having different deviations and this information allows us to remove from the transformation each of the points presenting a value above a certain tolerance. Well, since Homography transformation does not provide any deviation result (residuals), how can we still use this feature?

The answer is quite simple: before applying homography, we need to firstly apply a transformation which provides deviations. Doing so, we can still evaluate the points reliability and exclude those considered incorrect, finally applying the Homography transformation to only the good points.

We will understand all the issues better by following a practical example.

As the operations to perform Homography, Rubber-Sheeting and Trilateral transformations are the same, this guide includes a unique example in the section Transformations | Trilateral dedicated to this technique. In fact, the only difference between Homography, Rubber-Sheeting and Trilateral transformations is the algorithm: the first two are based on quadrilaterals, whereas the Trilateral is based on triangles.

Define quadrilaterals

As mentioned in the previous paragraph, during the Homography (and Rubber-Sheeting) transformation, CorrMap automatically creates the quadrilaterals on the reference points, but also allows the user to manually define them in order to consider differently deformed area of the map (please refer to section Transformations | Trilateral | Define triangles for a detailed discussion on this subject). To do so, you simply need to click the Define quadrilateral button in Homography CorrMap's toolbar and follow the instructions of the help window opened by this command (Fig. TR.H2). The steps to create the quadrilaterals are exactly the same as for the triangles in the Trilateral transformation, so refer to the above mentioned section for the detailed explanation.




Fig. TR.H2 – The instructions on how to manually creates the quadrilaterals.