An orientation image is then calculated, which is a matrix of direction vectors
representing the ridge orientation at each location in the image. The widely
employed gradient-based approach is used to calculate the gradient [18, 20, 22],
which makes use of the fact that the orientation vector is orthogonal to the
gradient. Firstly, the image is partitioned into square blocks and the gradient is
calculated for every pixel, in the x and y directions. The orientation vector for
each block can then be derived by performing an averaging operation on all the
vectors orthogonal to the gradient pixels in the block. Due to the presence of
noise and corrupted elements in the image, the ridge orientation may not always
be correctly determined. Given that the ridge orientation varies slowly in a local
neighbourhood, the orientation image is then smoothed using a low-pass filter to
reduce the effect of outliers.