Как угол вращения может быть определен корреляцией фазы (использующий fft) 2 изображений? Алгоритм, данный в http://en.wikipedia.org/wiki/Phase_correlation, возвращает линейный сдвиг, не угловой. Это также упоминает, что изображения должны быть преобразованы в полярные координаты журнала для вычислений вращения. Как это преобразование достигается в Python? И преобразование сообщения делает те же шаги алгоритма содержат?
Логополярное преобразование фактически инвариантно к вращению и масштабированию. Вращение соответствует сдвигу по оси y а масштабирование соответствует сдвигу по оси x в логарифмическом полярном преобразовании
Вот простые шаги для поиска изображения x в изображении y:
Найдите изображение x в изображении y (используйте корреляцию фаз в декартовых координатах)
Вычислите логарифмические полярные преобразования как x, так и y (это совершенно другая проблема, см. Ссылки ниже), убедитесь, что вы центрировали одну и ту же функцию на обоих изображениях.
Найдите БПФ x и y, скажем F (X) и F (y)
Найдите фазовую корреляцию F (x) и F (y), назовите это R
Найдите IFFT (обратное БПФ) of R. Пиковое значение R соответствует отклонению поворота по оси Y и отклонению масштабирования по оси X от исходного изображения.
Ссылки: