Я использовал Accord Framework для выполнения 2D-взаимной корреляции в C #, поэтому применил следующую формулу: corr(a, b) = ifft(fft(a_and_zeros) * conj(fft(b_and_zeros)))
.
Мои выходные данные хранятся в объекте Complex [,], но компонент нулевой частотысмещен в верхний левый угол матрицы, что и ожидается.
Я делал то же самое с MATLAB ранее и использовал функцию fftshift
, чтобы перецентрировать ее.Мне, увы, не удалось найти эквивалентную функцию в Accord Framework для работы с моим кодом C #.
Есть ли способ сделать это более элегантным, чем копировать каждую четверть матрицы в новые матрицы?и реорганизовать их в исходную матрицу?