OpenCv FFT i Matlab FFT

0

Próbuję przetłumaczyć kod matlabowy do OpenCV. Ale za nic nie mogę dostać zbieżnych wyników, kiedy przychodzi do liczenia FFT.
W matlabie:
x = fft(x,[],1)
gdzie x to jakaś macierz (załóżmy, że trójwymiarowa). Na moje rozumienie ta linijka liczy transformatę fouriera ze względu na pierwszy wymiar macierzy i nie zmienia wielkości macierzy, bo zadana ilość punktów dla transformaty jest równa ilości punktów w wierszu.
W OpenCV powinno więc to wyglądać również jednolinijkowo,bez dopełniania zerami:

Mat fourier;
dft(x,fourier, DFT_ROWS); 

Niestety obie metody dają diametralnie różne wyniki. Czy ktoś poratuje, co robię nie tak? Nie wykluczam, że błąd może wynikać z braku ogarnięcia samego algorytmu FFT...

0

Przeczytaj dokumentacje tych funkcji, bo chyba sposób w jaki ich używasz może dawać różne rezultaty.
http://docs.opencv.org/modules/core/doc/operations_on_arrays.html#dft
http://www.mathworks.com/help/matlab/ref/fft.html

0

Odpowiedź była prosta: Matlab robi transformacje po kolumnach. Żeby uzyskać e same wyniki trzeba zarządzić transpozycję przed i po dft.

1 użytkowników online, w tym zalogowanych: 0, gości: 1