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.
F. Chabat