FFT questions...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

FFT questions...

Dean Waldow
Hi Folks,

I have a few FFT related questions. I have tried to look over the  
documentation but have not found answers to my questions as best as I  
can tell or I have missed them.  Any help or suggestion of where to  
find answers would be useful.

Here I refer to PROCESS->FFT->FFT...

1) When taking a FFT of an image that is not 2^Nx2^N, what portion of  
the image is used to do the FFT? For example in a 640x480 image, is  
only a 256x256 subsection used for the FFT?  When I take the FFT of a  
640x480 image, FFT doesn't seem to care that the image is not  
2^Nx2^N.  Or maybe it pads with zeros up to the next 2^Nx2^N?

2) After taking a FFT of an image that is calibrated, you can move  
the cursor over the image and it displays the radius in unit of  
distance / cycle,  angle in degrees, and value of the pixel at that  
r, theta.

     a) How does the radius unit (distance/cycle) relate to a  
scattering wave vector unit (1/distance)?   My thought would be:
             L(distance/cycle = 2*pi / [ wave vector (1/distance) ]

     b) How can I access that radius value from the ip.X which is  
displayed with the cursor is moved over the FFT image? The pixel  
value seems to be accessed in Java via ip.getPixelValue((int)i,(int)
j) (if ip is an imageprocessor variable) but I have not found how the  
radius and theta are accessed for a given pixel. I have I have tried  
a bit to look at the source code but without much luck.

3) What is displayed is said to be the 8 bit power spectrum with log  
scaling after taking an FFT while the 32 bit FHT is attached to the 8  
bit image? Am I close to say that is

         powerspectrum = log ( complex conjugate 32 bit FHT (times)  
32 bit FHT )?

4) Lastly, is there a plugin like radial profile plot (http://
rsb.info.nih.gov/ij/plugins/radial-profile.html) which works with FFT  
images? The radial profile plot plugin appears to ignore the r and  
theta of an FFT powerspectrum image but really seems to have been  
written for real space images.


I have looked at the following documents but likely have missed the  
info:

http://rsb.info.nih.gov/ij/docs/menus/process.html#fft
http://rsb.info.nih.gov/ij/docs/examples/tem/
http://rsb.info.nih.gov/ij/docs/ImageFFT/

Thanks,

Dean
--
------------------------------------------------------------------------
Dean Waldow, Professor               (253) 535-7533
Department of Chemistry              (253) 536-5055 (FAX)
Pacific Lutheran University          [hidden email]
Tacoma, WA  98447   USA              http://www.chem.plu.edu/waldow/
------------------------------------------------------------------------
---> CIRRUS and the Chemistry homepage: <http://www.chem.plu.edu/> <----
------------------------------------------------------------------------
Reply | Threaded
Open this post in threaded view
|

Re: FFT questions...

Robert Dougherty
For theory, check out Arlo Reeves's thesis at
http://rsb.info.nih.gov/ij/docs/ImageFFT/docs/thesis.pdf

ImageJ displays the power spectrum and, to some degree, hides the actual
transform from the user.  The 3D version of the FHT that I recently posted
at http://www.optinav.com/ImageJplugins/FHT3D.htm provides the raw
transform.  It also works in 2D.

If the image dimensions are not powers of 2, then it is necessary to pad
them until they are. (It should not actually be necessary.  The FFT in
SLATEC does not require powers of 2 size.)   The filters in ImageJ and also
my 3D convolution and deconvolution codes (liberally plagiarized from
ImageJ) choose a dimension that is at least 1.5 times the original dimension
and use a mirroring process to fill in the outsides.  This is intended to
reduce ringing effects that would otherwise result from the discontinuity of
padding with zeros and forcing periodicity.

Bob


Robert P. Dougherty, Ph.D.
President, OptiNav, Inc.
Phone (425) 467-1118
Fax (425) 467-1119
www.optinav.com
 

> -----Original Message-----
> From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of Dean
> Waldow
> Sent: Tuesday, July 19, 2005 5:56 PM
> To: [hidden email]
> Subject: FFT questions...
>
> Hi Folks,
>
> I have a few FFT related questions. I have tried to look over the
> documentation but have not found answers to my questions as best as I
> can tell or I have missed them.  Any help or suggestion of where to
> find answers would be useful.
>
> Here I refer to PROCESS->FFT->FFT...
>
> 1) When taking a FFT of an image that is not 2^Nx2^N, what portion of
> the image is used to do the FFT? For example in a 640x480 image, is
> only a 256x256 subsection used for the FFT?  When I take the FFT of a
> 640x480 image, FFT doesn't seem to care that the image is not
> 2^Nx2^N.  Or maybe it pads with zeros up to the next 2^Nx2^N?
>
> 2) After taking a FFT of an image that is calibrated, you can move
> the cursor over the image and it displays the radius in unit of
> distance / cycle,  angle in degrees, and value of the pixel at that
> r, theta.
>
>      a) How does the radius unit (distance/cycle) relate to a
> scattering wave vector unit (1/distance)?   My thought would be:
>              L(distance/cycle = 2*pi / [ wave vector (1/distance) ]
>
>      b) How can I access that radius value from the ip.X which is
> displayed with the cursor is moved over the FFT image? The pixel
> value seems to be accessed in Java via ip.getPixelValue((int)i,(int)
> j) (if ip is an imageprocessor variable) but I have not found how the
> radius and theta are accessed for a given pixel. I have I have tried
> a bit to look at the source code but without much luck.
>
> 3) What is displayed is said to be the 8 bit power spectrum with log
> scaling after taking an FFT while the 32 bit FHT is attached to the 8
> bit image? Am I close to say that is
>
>          powerspectrum = log ( complex conjugate 32 bit FHT (times)
> 32 bit FHT )?
>
> 4) Lastly, is there a plugin like radial profile plot (http://
> rsb.info.nih.gov/ij/plugins/radial-profile.html) which works with FFT
> images? The radial profile plot plugin appears to ignore the r and
> theta of an FFT powerspectrum image but really seems to have been
> written for real space images.
>
>
> I have looked at the following documents but likely have missed the
> info:
>
> http://rsb.info.nih.gov/ij/docs/menus/process.html#fft
> http://rsb.info.nih.gov/ij/docs/examples/tem/
> http://rsb.info.nih.gov/ij/docs/ImageFFT/
>
> Thanks,
>
> Dean
> --
> ------------------------------------------------------------------------
> Dean Waldow, Professor               (253) 535-7533
> Department of Chemistry              (253) 536-5055 (FAX)
> Pacific Lutheran University          [hidden email]
> Tacoma, WA  98447   USA              http://www.chem.plu.edu/waldow/
> ------------------------------------------------------------------------
> ---> CIRRUS and the Chemistry homepage: <http://www.chem.plu.edu/> <----
> ------------------------------------------------------------------------
Reply | Threaded
Open this post in threaded view
|

Re: FFT questions...

originlab1
In reply to this post by Dean Waldow
Dear Professor Dean Waldow,
I see that the question was posted in 2005. I am a newbie at ImageJ and have exactly the same question as yours. Could you please post if you got the answer to your query? If not, how was the problem solved. I have some HRTEM images from which I get FFT. I also want to generate a I vs 2-th plot for the FFT image but the ImageJ radial plugins seem to be for real space images only.
Thanks in advance Sir.