Kirsch operator explained

The Kirsch operator or Kirsch compass kernel is a non-linear edge detector that finds the maximum edge strength in a few predetermined directions. It is named after the computer scientist Russell Kirsch.

Mathematical description

The operator takes a single kernel mask and rotates it in 45 degree increments through all 8 compass directions: N, NW, W, SW, S, SE, E, and NE. The edge magnitude of the Kirsch operator is calculated as the maximum magnitude across all directions:

hn,m=maxz=1,...,8

(z)
\sum
ij

fn+i,m+j

where z enumerates the compass direction kernels g:

g(1)

=\begin{bmatrix}+5&+5&+5\\ -3&0&-3\\ -3&-3&-3\end{bmatrix},

g(2)

=\begin{bmatrix}+5&+5&-3\\ +5&0&-3\\ -3&-3&-3\end{bmatrix},

g(3)

=\begin{bmatrix}+5&-3&-3\\ +5&0&-3\\ +5&-3&-3\end{bmatrix},

g(4)

=\begin{bmatrix}-3&-3&-3\\ +5&0&-3\\ +5&+5&-3\end{bmatrix}

and so on.

The edge direction is defined by the mask that produces the maximum edge magnitude.

References