Il existe plusieurs informations clés dont vous avez besoin pour comprendre comment la DFT vous permet de décaler une image.
Tout d'abord, le théorème de Fourier: il est probablement plus facile de regarder d'abord le cas continu (c'est-à-dire analogique). Imaginez que vous ayez une fonction, appelez-la g (t). Pour simplifier, disons que g (t) est un enregistrement audio analogique, donc c'est une fonction unidimensionnelle, qui est continue, et représente la pression instantanée en fonction du temps.
Maintenant, g (t) est une façon de représenter notre enregistrement audio. Un autre est G (f). G (f) est la transformée de Fourier de g (t). Donc, G (f) == FT (g (t)). G (f) a toutes les mêmes informations que g (t), mais il représente ces informations dans le domaine fréquentiel au lieu du domaine temporel. Il y a quelques détails pointilleux sur les transformées de Fourier, que je ne mentionnerai pas.
Vous pouvez en quelque sorte considérer G (f) comme la "distribution des fréquences" contenue dans g (t). Donc, si g (t) est une onde sinusoïdale (c'est-à-dire un ton pur), alors G (f) sera nul partout, sauf à la fréquence de ce ton. C'est probablement un bon point pour mentionner que G (f) est en général une fonction complexe - c'est-à-dire qu'il renvoie des nombres complexes, qui peuvent être considérés comme ayant une composante réelle et imaginaire ou une amplitude et une phase.
δ(w)δ
Ok, alors maintenant nous avons des FT continus à notre actif.
Voici le deuxième aperçu: une transformée de Fourier discrète est une transformée de Fourier comme un signal échantillonné est un signal analogique. Dans ce cas, le «discret» fait référence à la quantification du domaine de la fonction (temps ou fréquence), pas sa plage. (Le signal numérique échantillonné que vous obtenez de votre carte son est quantifié à la fois dans le domaine et dans la plage.)
Le flux d'octets numérique que vous obtenez à partir de votre carte son contient des "échantillons" du signal continu (analogique) original du microphone. Si nous prenons la DFT de notre g (t) échantillonné, nous obtenons toujours un G (f). G (f), rappelez-vous, n'est qu'une façon différente de représenter les informations contenues dans g (t). Si nous obéissons au théorème de Nyquist , le signal échantillonné g (t) contient toute "l'intelligence" du signal continu d'origine, donc notre discret G (f) doit contenir toutes les informations de notre signal continu d'origine. Entre parenthèses, G (f) est toujours une fonction complexe.
C'est là que la magie du décalage sous-pixel entre en jeu, mais dans ce cas, je vais écrire sur le décalage du signal audio dans le temps de moins d'un échantillon, car c'est la même chose.
eiπ2
Cela signifie que nous pouvons changer notre enregistrement audio dans le temps (par tout montant que nous choisissons, y compris une fraction de temps d'échantillonnage) simplement en modifiant la phase de G (t). En fait, cette déclaration est peut-être un peu trop désinvolte. Pour un signal échantillonné non quantifié, la phase peut être ajustée arbitrairement (cela fait partie de la raison pour laquelle j'ai fait la distinction entre quantification du domaine et de la plage plus tôt). Cependant, pour un signal échantillonné quantifié (notre flux d'octets audio, par exemple), la taille du pas de quantification (c'est-à-dire le nombre de bits) détermine la résolution avec laquelle nous pouvons ajuster la phase. Lorsque nous transformons la Fourier inverse G (f) (ou le DIFT, pour ce signal échantillonné), le nouvel ensemble d'échantillons g '(t) = DIFT (G (F)) sera tous décalés dans le temps de la quantité que nous choisissons.
Appliquer cela à vos pixels signifie simplement utiliser un FT à 2 dimensions au lieu du FT à 1 dimension discuté ici.