Понимание фильтра Габора - PullRequest
0 голосов
/ 03 июля 2018

В Accord.ne t инфраструктуре два класса используются для построения фильтра Габора:

Существуют различные реализации фильтра Габора в других местах:

но исходные коды в Accord.net выглядят очень странно для меня. Они обсуждают 3 типа ядер:

  • Real
  • Imaginary
  • Magnitude
  • SquaredMagnitude

Кто-нибудь может объяснить последние 3 (Real не требующие объяснения) типа или отослать меня к некоторым материалам, где я могу их изучить?

1 Ответ

0 голосов
/ 03 июля 2018

Ядро Gabor g(t) имеет комплексное значение. Это квадратурный фильтр , означающий, что в частотной области (G(f)) он не имеет отрицательных частот. Таким образом, четные и нечетные части этого частотного отклика связаны even(G(f)) = odd(G(f)) * sign(f). То есть четные и нечетные части имеют одинаковые значения для положительных частот, но обратные значения для отрицательных частот. Таким образом, сложение четной и нечетной частей приводит к подавлению отрицательных частот, а положительные частоты усиливают друг друга.

Четная часть (действительной) частотной характеристики соответствует четному и вещественному ядру. Нечетная часть соответствует нечетному и мнимому ядру. Четное ядро ​​является оконным косинусом, нечетное ядро ​​является оконным синусом.

Фильтр Габора применяется путем свертывания изображения с этими двумя компонентами с последующим получением величины результата.

Величина самого фильтра является гауссовым сглаживающим ядром (это окно над синусом и косинусом). Обратите внимание, что cos^2+sin^2=1, поэтому величина не показывает волновую составляющую ядра. Код, который вы связали, который вычисляет величину ядра Gabor, делает много бессмысленных вычислений ...:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...