Hi all,
I've been having a problem with ImageJ related to 2-d fourier transform of ordered images. Essentially, if I take an FFT of any hexagonally close-packed lattice (e.g. http://content.answers.com/main/content/wp/en-commons/thumb/c/c0/180px-Tile_3,6.svg.png ) and compare that with a line plot of the objects I get inconsistent results. Specifically, take a line plot down any lattice direction of that image. Divide the length of the line plot by the number of triangles it passes through (i.e. the total number of lattice spacings). Compare that with what you get from the FFT. The line plot yields a lattice constant of about 14.5 pixels per cycle while the fourier transform peaks are all right around 12 pixels / cycle. Does anyone know what's going on here? This same phenomena has repeated for just about any image of hexagonal close-packed circles that I load into it.... The line plot method reveals X for a lattice constant, while the FFT peak is at Y. There's a factor of about 1.2 between them. However, if you do the same thing with an array of straight lines, the FFT and the line profile match eachother perfectly. (As is shown on the imageJ website for the FFT demo). Thanks in advance -- Mason Guffey | Gordon Center for Integrative Science ESB09B Scherer Group | [hidden email] Department of Chemistry | (773) 834-1877 The University of Chicago | http://schererlab.uchicago.edu |
Hi Mason,
a 2D FFT of a non-rectangular lattice gives the distance between parallel *lines*, which is different from the lattice constant measured along a lattice direction. In physics, this is known as reciprocal lattice. Also note that the reciprocal lattice vectors are perpendicular to the lines of the original lattice, and their length corresponds to the distance measured in that direction. So you get the side length of the triangles multiplied by sqrt(3)/2. Michael ____________________________________________________________________ not that reciprocal lattic; On Thu, 14 Aug 2008 15:46:05 -0500 Mason Guffey <[hidden email]> wrote: >Hi all, > >I've been having a problem with ImageJ related to 2-d fourier transform >of ordered images. Essentially, if I take an FFT of any hexagonally >close-packed lattice (e.g. >http://content.answers.com/main/content/wp/en-commons/thumb/c/c0/180px-Tile_3,6.svg.png >) and compare that with a line plot of the objects I get inconsistent >results. > >Specifically, take a line plot down any lattice direction of that image. >Divide the length of the line plot by the number of triangles it passes >through (i.e. the total number of lattice spacings). Compare that with >what you get from the FFT. The line plot yields a lattice constant of >about 14.5 pixels per cycle while the fourier transform peaks are all >right around 12 pixels / cycle. > >Does anyone know what's going on here? This same phenomena has repeated >for just about any image of hexagonal close-packed circles that I load >into it.... The line plot method reveals X for a lattice constant, while >the FFT peak is at Y. There's a factor of about 1.2 between them. > >However, if you do the same thing with an array of straight lines, the >FFT and the line profile match eachother perfectly. (As is shown on the >imageJ website for the FFT demo). > >Thanks in advance > >-- >Mason Guffey | Gordon Center for Integrative Science ESB09B >Scherer Group | [hidden email] >Department of Chemistry | (773) 834-1877 >The University of Chicago | http://schererlab.uchicago.edu > |
Hi Michael,
Thanks so much for your help! I have to admit, I'm still a little confused on this, can you provide me with a reference for this? Or would any solid state physics text have an explanation? Is this a general property of a Fourier transform (i.e in a mathematical sense) or something particular to the 2D FFT algorithm? What I'm using this for is to determine the average interparticle separation for a TEM image of a nanoparticle array. The array is a 2d close-packed (HCP) lattice of spheres. Does what you say hold true for arrays of spheres rather than the triangle example? Also, what if I wanted to use the FFT to determine the average interparticle separation of a disordered complex of spherical particles (in this case the FFT yields rings rather than peaks). Would the same constant factor apply? I realize that this is an ImageJ forum rather than an FFT forum, but I'm having a hard time finding any discussion of this and I think this may be a problem that has tripped up other people working with nanoparticle superlattices. So your comments are very helpful. thanks again, Mason Michael Schmid wrote: > Hi Mason, > > a 2D FFT of a non-rectangular lattice gives the distance between > parallel *lines*, which is different from the lattice constant > measured along a lattice direction. > In physics, this is known as reciprocal lattice. > Also note that the reciprocal lattice vectors are perpendicular to > the lines of the original lattice, and their length corresponds to > the distance measured in that direction. > > So you get the side length of the triangles multiplied by sqrt(3)/2. > > Michael > ____________________________________________________________________ > > not that reciprocal lattic; > > On Thu, 14 Aug 2008 15:46:05 -0500 Mason Guffey <[hidden email]> > wrote: > >> Hi all, >> >> I've been having a problem with ImageJ related to 2-d fourier transform >> of ordered images. Essentially, if I take an FFT of any hexagonally >> close-packed lattice (e.g. >> http://content.answers.com/main/content/wp/en-commons/thumb/c/c0/180px-Tile_3,6.svg.png >> ) and compare that with a line plot of the objects I get inconsistent >> results. >> >> Specifically, take a line plot down any lattice direction of that image. >> Divide the length of the line plot by the number of triangles it passes >> through (i.e. the total number of lattice spacings). Compare that with >> what you get from the FFT. The line plot yields a lattice constant of >> about 14.5 pixels per cycle while the fourier transform peaks are all >> right around 12 pixels / cycle. >> >> Does anyone know what's going on here? This same phenomena has repeated >> for just about any image of hexagonal close-packed circles that I load >> into it.... The line plot method reveals X for a lattice constant, while >> the FFT peak is at Y. There's a factor of about 1.2 between them. >> >> However, if you do the same thing with an array of straight lines, the >> FFT and the line profile match eachother perfectly. (As is shown on the >> imageJ website for the FFT demo). >> >> Thanks in advance >> >> -- >> Mason Guffey | Gordon Center for Integrative Science ESB09B >> Scherer Group | [hidden email] >> Department of Chemistry | (773) 834-1877 >> The University of Chicago | http://schererlab.uchicago.edu >> >> |
Hi Mason,
this is a general property of 2D (and 3D, etc) Fourier transforms, not one of the algorithm used or of the special test images: In 2D, FFT gives the frequency corresponding to the distance between *rows* of objects (measured perpendicular to the rows), in 3D it gives the frequency corresponding to the distance between *planes*. (by the way, this is also valid for the the diffraction spots in TEM images). See, e.g. http://en.wikipedia.org/wiki/Reciprocal_lattice For your application, the autocorrelation might be better - use Process > FFT > FT Math with "Correlate" (both input images should be the same) and "do inverse transform". This will give you a real-space image. The ring around the center will have a radius equal to the typical distance of the objects. Michael ________________________________________________________________ On 15 Aug 2008, at 18:43, Mason Guffey wrote: > Hi Michael, > > Thanks so much for your help! I have to admit, I'm still a little > confused on this, can you provide me with a reference for this? Or > would > any solid state physics text have an explanation? > > Is this a general property of a Fourier transform (i.e in a > mathematical > sense) or something particular to the 2D FFT algorithm? What I'm using > this for is to determine the average interparticle separation for a > TEM > image of a nanoparticle array. The array is a 2d close-packed (HCP) > lattice of spheres. Does what you say hold true for arrays of spheres > rather than the triangle example? > > Also, what if I wanted to use the FFT to determine the average > interparticle separation of a disordered complex of spherical > particles > (in this case the FFT yields rings rather than peaks). Would the same > constant factor apply? > > I realize that this is an ImageJ forum rather than an FFT forum, > but I'm > having a hard time finding any discussion of this and I think this may > be a problem that has tripped up other people working with > nanoparticle > superlattices. So your comments are very helpful. > > thanks again, > Mason > > Michael Schmid wrote: > > Hi Mason, > > > > a 2D FFT of a non-rectangular lattice gives the distance between > > parallel *lines*, which is different from the lattice constant > > measured along a lattice direction. > > In physics, this is known as reciprocal lattice. > > Also note that the reciprocal lattice vectors are perpendicular to > > the lines of the original lattice, and their length corresponds to > > the distance measured in that direction. > > > > So you get the side length of the triangles multiplied by sqrt(3)/2. > > > > Michael > > ____________________________________________________________________ > > > > not that reciprocal lattic; > > > > On Thu, 14 Aug 2008 15:46:05 -0500 Mason Guffey <[hidden email]> > > wrote: > > > >> Hi all, > >> > >> I've been having a problem with ImageJ related to 2-d fourier > transform > >> of ordered images. Essentially, if I take an FFT of any hexagonally > >> close-packed lattice (e.g. > >> > http://content.answers.com/main/content/wp/en-commons/thumb/c/ > c0/180px-Tile_3,6.svg.png > >> ) and compare that with a line plot of the objects I get > inconsistent > >> results. > >> > >> Specifically, take a line plot down any lattice direction of > that image. > >> Divide the length of the line plot by the number of triangles it > passes > >> through (i.e. the total number of lattice spacings). Compare > that with > >> what you get from the FFT. The line plot yields a lattice > constant of > >> about 14.5 pixels per cycle while the fourier transform peaks > are all > >> right around 12 pixels / cycle. > >> > >> Does anyone know what's going on here? This same phenomena has > repeated > >> for just about any image of hexagonal close-packed circles that > I load > >> into it.... The line plot method reveals X for a lattice > constant, while > >> the FFT peak is at Y. There's a factor of about 1.2 between them. > >> > >> However, if you do the same thing with an array of straight > lines, the > >> FFT and the line profile match eachother perfectly. (As is shown > on the > >> imageJ website for the FFT demo). > >> > >> Thanks in advance > >> > >> -- > >> Mason Guffey | Gordon Center for Integrative Science ESB09B > >> Scherer Group | [hidden email] > >> Department of Chemistry | (773) 834-1877 > >> The University of Chicago | http://schererlab.uchicago.edu > >> > |
In reply to this post by Mason Guffey
Mason,
I'm not sure if Michael has replied, but the standard text books by Kittel and Ashcroft and Mermin would be good places to look. On Amazon.com, it appears that Kittel has evolved since the copy on my shelf (5th ed) but it is hard to believe that something as fundamental as the reciprocal lattice would have been dropped. Bob Robert P. Dougherty, Ph.D. President, OptiNav, Inc. Phone (425) 990-5912 Fax (425) 467-1119 www.optinav.com > Hi Michael, > > Thanks so much for your help! I have to admit, I'm still a little > confused on this, can you provide me with a reference for this? Or would > any solid state physics text have an explanation? ... > Mason > |
Free forum by Nabble | Edit this page |