MATLAB Answers

0

Processing of a 2D FFT image (matrix) - calculate periodcity from image

Asked by Markus Altthaler on 19 Jul 2019
Latest activity Answered by Sahithi Kanumarlapudi on 6 Aug 2019
Hey,
I need some help with the following problem: I have AFM images that show periodc structures. And my goal is to determine the periodicity from the image using FFT. I start by loading an image "AFMImage" wich results in a matrix of size m x m where every entry corresponds to the z value in a 3D surf plot. This image is then fourier transformed and processed as shown here:
FFT = fft2(AFMImage);
FFT = fftshift(FFT);
FFT = abs(FFT);
FFT = log(FFT+1); %for perceptual scaling
The obtained matrix FFT can be plotted as a surf plot as well. This plot shows the expected centerpeak as well as a ring. The ring's diameter corresponds to the inverse periodicity I am interested in. Other artefacts like lines e.g. from edges are visible too but less prominent.
What is the best way to get the ring and subsequently it's diameter from the matrix FFT?
I had the two idea but i did not get any of them to work:
a) Use a fitfunktion to fit the centerpeak as well as a ring with the diameter as a fit parameter (e.g. surffit)
b) Use the image processing toolbox to detect the ring (I lack any experience in this field)
I'd be happy for any useful input regarding my approaches or a completly new approach ;)

  0 Comments

Sign in to comment.

1 Answer

Answer by Sahithi Kanumarlapudi on 6 Aug 2019

If you know the range where the ring may lie you can use “imfindcircles” function from image processing toolbox to know the center and radius of the ring.
For more information on “imfindcircles” refer to the following link

  0 Comments

Sign in to comment.