
The process of evaluating a corner's orientation in our
approach mainly involves finding the orientation of the surrounding
edges that form the corner. Extracting such information is therefore
essentially a local process. We define a function
that
signifies the likelihood of a pixel being part of the edges associated
with a particular corner C. The value of
is computed at
each point
in a small neighbourhood around what has been labelled as
a corner point C. The following assumptions about the configuration
within corners are used:
To satisfy the first assumption, we introduce the product
as a good edge detector. The mere gradient would be
inconsistently strong at noise spikes, and the mere anisotropism would
be misleadingly high on strongly orientated patterns such as a
gradient intensity ramp. Therefore, the combination of two identifies
edges properly. We will regard the direction of anisotropism
to be the direction of the edge points found.
The second assumption is necessary to deal with the problem of corner
adjacency. Several edges may be found in the neighbourhood of a
corner, they might not all belong to the same structure. Indeed, they
could be associated with another corner nearby. If the direction of an
edge pixel does not point toward the corner point C, then its value of
should be very low. To enforce this, we have introduced
the angle
.

with u being the direction of anisotropsim at
, derived from
in Equation (2), and
. As shown on figure 2,
is
a measure of the difference between the direction of an edge at a
pixel
and the direction of
.
Figure 2: Definition of
. C is a corner pixel,
is a point located within its neighbourhood.
is the angular difference between the direction
of anisotropism at
and the direction of
Computing the cosine of
provides a good discriminant to
establish which neighbouring corner an edge point belongs to. Figure
3 illustrates this property: an edge point M is close
to two different corner points. When studying the neighbourhood of one
of these corners,
is discarded, because the direction of the edge it
belongs to is not compatible with the direction of
.
Figure 3: Adjacent corners: when studying corner
,
is discarded, for at
Based on the remarks made above, we subsequently obtain an analytical expression of
:
with n being a parameter controlling how strictly direction compatibility should be enforced. In our application, we used the value n=3.
To assist further understanding of Equation (7), Figure 4 gives a schematic summary of the main fields computed. (a) represents the original image of a corner (b) shows anisotropism g(x), (c) shows cornerness c(x) and (d) shows the value of
in a small window around the corner point. Only the pixels belonging to relevant edges are retained.
Figure 4: a) Example image I(x) of a corner. An un-related edge is located within its neighbourhood. b) Anisotropism g(x): the edges are strongly orientated along one direction whereas the corner point is not. c) cornerness
. d)
: identification of the side points associated with the corner. The edge that is not associated with the corner is discarded.
For each corner point C, the value of
is computed
within a small neighbouring window
and a histogram H is
constructed.
Figure 5: a) Image of a junction. b) Value of
in a neighbourhood
. No orientation information is extracted from the junction point. The arms are clearly identified.
The orientations of the arms of the corners are estimated by taking
the local maxima of the histogram. Each maximum is found in the
neighbourhood of a peak corresponding to one arm of the corner. A
technique has been designed to determine the number of peaks,
i.e., the number of edges defining the corner: two for a simple
corner, three or more for a junction. It is worth noting that care
must be taken when defining the size of
. Making it too small may not provide enough information for
an accurate estimation of the orientation. Making it too big would not
be computationally expensive but it would include irrelevant
information in the search process. Indeed, the corners we identify
here are extrapolated but not interpolated like with a Hough transform
approach.