Я пытаюсь создать простую систему для распознавания простых фигур с использованием дескрипторов Фурье: я использую эту реализацию быстрого преобразования Фурье в своей программе: (ссылка ниже)
http://www.wikijava.org/wiki/The_Fast_Fourier_Transform_in_Java_%28part_1%29
fft(double[] inputReal, double[] inputImag, boolean direction)
входы: реальная часть и часть изображения (которые, по сути, являются координатами x, y граничного параметра, который у меня есть), а выходы - преобразованные числа реального и изображения.
вопрос: Как я могу использовать вывод (преобразованный реальный, образ) в качестве инвариантных дескрипторов моих простых форм?
Вот что я подумал:
- вычислить
R = sqrt( real^2 + imag^2 )
для каждых N шагов. - разделите каждое
R
наR[1]
= коэффициент нормализации, чтобы сделать его неизменным.
Проблема в том, что я получаю очень разные значения R для немного разных изображений (например, небольшие повороты и т. Д.).
Другими словами :
Мои дескрипторы не инвариантны... Я думаю, что делаю что-то не так, получая значение R.