J'ai lu cette image:
pris sa FFT (2D) puis FFT inverse pour récupérer exactement l'image. Le code est fourni pour référence:
imfft = fft2(photographer);
im = uint8(ifft2(imfft));
imshow(im); %Output is same image
Mais quand je change le fourier et ne prends que la vraie partie,
imfft = real(fft2(photographer));
im = uint8(ifft2(imfft));
imshow(im);
J'obtiens une image comme celle-ci ( notez que le changement de taille n'est pas pertinent et uniquement en raison de son enregistrement à partir du gestionnaire de figures Matlab ):
Quelqu'un peut-il m'expliquer la théorie (mathématiques) derrière cela? Merci
image-processing
fft
fourier-transform
Scientifique en échec
la source
la source
I think you can see now why got that result.
Oui. Cependant, puisque cette question a frappé la liste HNQ, vous pourriez peut-être envisager d'ajouter l'étape finale pour ceux qui viennent de sites inclinés moins mathématiques.Cette propriété est en fait utilisée pour accélérer l'imagerie par résonance magnétique (IRM) dans certains cas: l'IRM acquiert les données directement dans l'espace de Fourier. Puisqu'une image MR idéale ne peut être décrite que par des valeurs réelles (tous les vecteurs de magnétisation excités ont la phase 0), vous n'avez qu'à acquérir la moitié de l'espace de données, ce qui vous fait gagner la moitié du temps d'imagerie. Bien sûr, les images IRM ne sont pas complètement réelles en raison des limites de la réalité ... mais avec quelques astuces, vous pouvez toujours utiliser cette technique de manière avantageuse.
la source