Матрица, сгенерированная при вычислении углового детектора Харриса, представляет собой тензор структуры ( см. Здесь, в Википедии ). Тензор структуры M
представляет собой матрицу, созданную внешним произведением поля градиента g
с самим собой:
g = gradient( image );
M = smooth( g * g' );
(при smooth
применяется локальное сглаживание).
Без сглаживания g * g'
всегда будет иметь одно положительное собственное значение и одно собственное значение 0, по построению. Это можно увидеть, выписав определитель полученной матрицы, который всегда равен 0, что означает, что одно из собственных значений должно быть 0 (их произведение является определителем). Другой должен быть положительным, потому что след является суммой двух квадратов; поскольку одно собственное значение равно 0, другое собственное значение должно быть равно трассе.
Локальное сглаживание складывает несколько таких матриц (взвешенное сложение). Сложение вместе положительных полуопределенных матриц приводит к положительно-полуопределенной матрице : если v'*A*v>=0
и v'*B*v>=0
, то v'*(A+B)*v>=0
.