Before discussing implementation details for orientation estimation,
we will take a moment to familiarise ourselves with the unique nature
of the problem. You will notice that the needles depicted in
Figure 1 do not have arrowheads like normal vectors.
This is because orientation,
like tangency, is a
-periodic measurement. That is to
say, the two complex numbers
and
represent the same orientation. Averaging of
these two vectors,
however, will result in total cancellation. At first, it may seem
that simply restricting the allowable orientation estimation values to
a particular interval would eliminate this problem. A little thought
will reveal that such a method cannot work. The correct way to
represent measures of orientation strength and angle, as discovered by
G. H. Granlund in [Gra78], is to simply double the angle
of each orientation estimate. While doubling the angle is
unattractive for visualisation purposes, mathematically it provides us
with a meaningful representation for averaging, differentiation, and
other related operations. For example, the two orientation estimates
and
would get mapped to
and
, respectively, the latter of which becomes
. Since angle
doubling correctly maps these two estimates to the same vector, the
averaging operation is meaningful. After averaging, the angle is of
course halved for purposes of visualisation.