Mivel a számítógépen reprezentált digitális raszterképek diszkrét rácson mintavételezettek és diszkrét értéktartományra kvantáltak, ezért a 2D diszkrét Fourier transzformációra lesz szükségünk.
A transzformáció szinuszoid függvények súlyozott összegére bontja a bemeneti képet. Pontosabban, az eredménye az eredeti képmátrixszal megegyező új diszkrét képmátrix lesz, amelynek az értékei egy-egy szinuszoid függvénynek a kép előállításában játszott szerepének megfelelő súlyát tartalmazzák. Látni fogjuk, hogy az origótól távolodva egyre nagyobb frekvenciájú szinuszoid hullám súlyát találjuk, ezért a DFT eredményt frekvenciatérnek is hívjuk.
A 2D diszkrét Fourier transzformáció (DFT) használatához az alábbi fő lépésekre lesz szükségünk.
- Az OpenCV-ben a DFT hatékony megvalósítását adó gyors Fourier transzformáció (FFT – Fast Fourier Transform) csak meghatározott képmérettel működik. Ha bemeneti képünk ennek nem felel meg, akkor ki kell terjesztenünk a méretét. Az esetleges új sorokat és oszlopokat 0 értékkel töltsük fel.
- A DFT számításhoz a képünket [0, 1] tartományú float típussá kell alakítanunk.
- A DFT eredménye egy komplex mátrix lesz. OpenCV esetén egy kétcsatornás képmátrixot kapunk. A [0] csatorna a valós, az [1] a képzetes rész.
- DFT esetén megegyezés szerint a kép középpontja az origó. Normál kép esetén az origó a bal felső sarok. Emiatt megjelenítéshez a képnegyedek átrendezése szükséges!
- Mivel a Fourier eredmény a középponttól távolodva rendszerint nagymértékben csökken, ezért megjeleníteni a komplex kép magnitúdójának logaritmusát szokták: log(1 + magn(DFT(I))). Magnitúdó: valós és képzetes érték négyzetösszegéből vont négyzetgyök (= távolság az origótól a komplex számsíkon).
- Az eredményül kapott komplex (frekvencia)mátrix elemein valamilyen módosítást végzünk, ami a képi megjelenésre hatással lesz.
- A képtérbe az inverz 2D diszkrét Fourier transzformáció alkalmazásával jutunk. Ezt megelőzően a síknegyedeket vissza kell alakítanunk a bal felső sarok origóhoz! A képi eredmény az inverz DFT [0], vagyis a valós csatornája lesz. Utána pedig ki kell vágnunk az eredményből az eredeti képméretnek megfelelő bal felső részt.
A Fourier transzformáció további jellemzői.
- A DFT eredményeként az origóban a kép összintegrálját (az összes képpont értékének összegét) kapjuk, ami valós érték, képzetes része 0.
- Valós képmátrix DFT-je úgynevezett komplex konjugált szimmetrikus lesz. Ez azt jelenti, hogy az origóra szimmetrikus értékek valós része egyenlő, képzetes része pedig ellentétes előjelű, de egyenlő abszolút értékű.
- Az ilyen komplex konugált szimmetrikus tulajdonságú frekvencia mátrixok inverz DFT-je valós eredményt ad, képzetes rész nélkül. Képfeldolgozó műveletek esetén a DFT eredmény módosításakor megtartjuk ezt a tulajdonságot.