Где я могу найти хороший источник информации, которая объясняет БПФ фазовой корреляции - PullRequest
4 голосов
/ 09 января 2011

Я искал великолепный исходный код OpenCV, чтобы понять подсчет очков.Как вы, наверное, заметили, библиотека может найти шаблон на изображении с доверительной оценкой.Функция cvMatchTemplate дает вероятность и местоположение шаблона на изображении.

Поскольку DFT медленный, я решил использовать библиотеку FFTW для фазовой корреляции.Я получил изображение, расширенное до размера, который является степенью 2, затем сделал то же самое с шаблоном, сначала вычислил FFT для обоих, умножил два массива, вычислил обратное FFT, наконец, нормализовал результат.

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

Буду признателен за любую информацию о том, как рассчитать оценку по этому результату фазовой корреляции,Есть много источников, описывающих «возьми это, возьми это, умножь их, ты видишь белую точку на изображении, да, ты находишь это».Мне нужна оценка, как это сделал cvMatchTemplate.

Я прошу вас указать мне сайт или статью, содержащую логику этих расчетов, или книгу.Исходный код был бы идеальным, но я все равно не надеюсь на это.

Ответы [ 2 ]

1 голос
/ 09 января 2011

1) FFTW может работать с массивами размера не степени 2.

2) Предметной областью, в которой вы можете искать / изучать, является теорема о взаимной корреляции БПФ:

«преобразование Фурье взаимной корреляции двух функций эквивалентно произведению отдельных преобразований Фурье, где одно из них было комплексно сопряженным»

1 голос
/ 09 января 2011

Во-первых, убедитесь, что вы не «расширяете изображение до степени 2».Я уверен, что вы не это имели в виду, но в любом случае с FFTW вы можете рассчитать произвольный размер FT.

Я не понимаю, для чего вы используете OpenCV.Если у вас есть БПФ, то довольно просто рассчитать нормализованный спектр перекрестной мощности, другими словами, «формулу фазовой корреляции».

Получите БПФ самого большого размера из изображений, которые вы можете, не забывая при этом к окну.Рассчитать CPS.Как только у вас появится поверхность корреляции, ищите пик.

Я не знаю, что OpenCV предлагает для Фазовой корреляции, кроме FT, но вам нужна бумага

G.A. Thomas, Television Motion Measurement for DATV and Other Applications, 1987, BBC Research Department.

...