Сопоставление шаблонов с использованием FFT - PullRequest
0 голосов
/ 04 августа 2011

Может кто-нибудь объяснить, как выполнить сопоставление с шаблоном, используя FFT.Шаблон меньше исходного изображения.1. Везде говорится, что шаблон должен быть дополнен нулями.Как это сделано.Добавляется ли оно внизу и справа к изображению или одинаково вокруг всего изображения.

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

Вы используете преобразование Фурье для расчета кросс-корреляции;это так просто.

Заполнение выполняется по всем сторонам шаблона.Это связано с тем, что стандартное быстрое преобразование Фурье может работать только с размерами данных, равными 2 ^ n, поэтому размер вашего шаблона и изображения должен составлять 2 ^ n * 2 ^ n.Так как обычно это не так, размер шаблона изменяется в соответствии с этим требованием, заполняя снаружи нулями.Эти нули не влияют на вычисление БПФ.

Рассмотрите возможность использования фазовой корреляции, дополнительные усилия очень малы, и вы можете получить отличные результаты.

1 голос
/ 04 августа 2011

Вот замечательный ресурс , который отвечает на ваш вопрос и несколько компромиссов.

1 голос
/ 04 августа 2011

Главы 3 и 4 Гонсалеса и Вудса «Цифровая обработка изображений» должны помочь вам лучше понять теорию.

Вам необходимо выполнить корреляцию между вашим изображением и вашим шаблоном.В некоторых случаях может быть более эффективно выполнить эту корреляцию в частотной области (используя БПФ), в то время как в других вы захотите выполнить операцию в пространственной области.

Некоторые программные системы делают этот выбор прозрачнымдля пользователей.См., Например, функцию ImageCorrelate в Mathematica (http://reference.wolfram.com/mathematica/ref/ImageCorrelate.html).

...