How do I generate a two dimensional Fourier Transform with a given image in a .mat file?

2 views (last 30 days)
I don't even know how to start. Help will be much appreciated.
Thank you

Answers (2)

Konstantinos Sofos
Konstantinos Sofos on 9 Mar 2015
Hi,
Mathworks documentation is excellent and is always a good point to start. Have a look here Fourier Transform and Image Transforms
Assuming that I is your input image and F is its Fourier Transform (i.e. F = fft2(I))
You can use this code:
F = fftshift(F); % Center FFT
F = abs(F); % Get the magnitude
F = log(F+1); % Use log, for perceptual scaling, and +1 since log(0) is undefined
F = mat2gray(F); % Use mat2gray to scale the image between 0 and 1
imshow(F,[]); % Display the result
Regards
  1 Comment
sean darmadi
sean darmadi on 9 Mar 2015
Hi, I am given a mat file called A.mat. So I am assuming I need to first open the file first. So i wrote,
fid=load('A.mat');
After that, I am not sure what to do with the opened file. I am confused on how to use the fft2 function cause every time I tried it says undefined function 'fttn' for input arguments of type 'struct'.
Am I doing something wrong?

Sign in to comment.


Image Analyst
Image Analyst on 9 Mar 2015
Attached are two of my FFT2 demos for you.
  2 Comments
sean darmadi
sean darmadi on 9 Mar 2015
Hi,
I am just given a file in the .mat format. When I try to do ftt2, I am unable to convert the file. When I use the load function, it says that I have a 300x300 double.
Image Analyst
Image Analyst on 9 Mar 2015
You forgot to attach your .mat file and your .m file so I'm unable to do anything to help you (yet).

Sign in to comment.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!