FFT of an image
Afficher commentaires plus anciens
Hello,
I am a new Matlab user trying to compute the FFT of a set of images using the following code:
I=imread('imagename.pbm');
F=fft2(double(I));
S=fftshift(F);
L-log2(S);
A=abs(L);
imagesc(A)
The code works fine and produces a 2D power spectrum of my image and during subsequent processing I histogram the data in A according to distance form the centre. I have two questions:
- How do I read this output? The majority of the data cluster around one point on the x-axis...is the corresponding value on the x-axis in cycles/deg? If not how do I get this information from the analysis?
- How do I read in multiple images at a time so that I don't have to do this analysis for each individual image?
Thank you so much for your help!!
Rachel
2 commentaires
Walter Roberson
le 18 Juin 2012
Note: you will probably want
S = fftshift( fftshift(F), 2 );
as otherwise you only move the origin to the center of an edge rather than to the center of the array.
Dr. Seis
le 18 Juin 2012
doing "fftshift" twice is not necessary:
>> a = rand(4,4)
a =
0.4669 0.3845 0.6051 0.5502
0.0665 0.6463 0.9255 0.3866
0.3338 0.2953 0.9869 0.0707
0.7681 0.4264 0.7705 0.7959
>> fftshift(a)
ans =
0.9869 0.0707 0.3338 0.2953
0.7705 0.7959 0.7681 0.4264
0.6051 0.5502 0.4669 0.3845
0.9255 0.3866 0.0665 0.6463
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Image Arithmetic dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!