Good day Fred!
"imagej java fft' is the one that implements the Hartley transform." There is per se nothing wrong with this approach... "It does not provide the ability, at least through the gui, to do a complex forward FFT, i.e., it only takes a single stack as input" Not true! You can specify the Real part and the Imaginary part. These are just the first two options in the FFTJ-forward dialog. "FFTJ seems to insist on doing a 3D FFT." Not sure what you mean ("insist"?), because initially you were asking for non-2D and I suspected you mean 3D. But of course FFTJ does 2D FFT. If you need many 2D FFTs, i.e. those of images in a stack, then you need a little macro and can call the FHT-based ImageJ-FFT. No problem. "The methods for doing 1D FFT are private, preventing this." What do you mean with this? What is private? If you need 1D FFTs you can either use ImageJ's array-FFT, a 1D image, or you may have a look at: <https://www.gluender.de/Miscellanea/MiscTexts/UtilitiesText.html#Gl-2014-1> Presently, I see no dilemma with ImageJ and FFT. However, I must admit that I can't always follow your logic, e.g. when you are speaking about "some magic". Regards Herbie :::::::::::::::::::::::::::::::::::::::::::: Am 24.05.20 um 22:45 schrieb [hidden email]: > Greetings Herbie, > > Thanks for that link. The link that always shows up when I google 'imagej > java fft' is the one that implements the Hartley transform. > > The link that you provided is a lot closer, although lacks what I need: > > a) It does not provide the ability, at least through the gui, to do a > complex forward FFT, i.e., it only takes a single stack as input, > apparently it assumes magnitude. The resultant k-space(re/im) stack is > setup in a fashion that enables the complex inverse FFT. There may be some > magic that can be performed to setup the image domain as per the resultant > k-space domain and get a complex forward transform to be performed, > although it is not apparent. There does not seem to be a way, though gui, > to forward transform re,im k-space. > > MRI datasets, at least those used by MR Physicists, are complex. If I > notice an artifact in my images (mag/pha or re/im) I would like to > transform them to k-space and see if I can figure out the cause of the > artifacts. > > b) FFTJ seems to insist on doing a 3D FFT. The majority of MRI datasets > are a stack of slices, although easy to get around by creating single > slice stacks. Also each direction in k-space is not the same and would be > useful to transform each direction separately. The methods for doing 1D > FFT are private, preventing this. > > So, thanks again for pointing me to this link. Although, there are other > FFT implementations out there that fulfill these requirements. > Unfortunately for me at the moment they are not available in my current > chosen development environment. When the desire for a ...FFT transforms > into a necessity, I will rectify my dilemma, until then... > > Fred > > On Fri, May 22, 2020 2:58 pm, Herbie wrote: > ... >> "Non-2D-image Complex forward and reverse Fourier transforms [...]" >> ...are available for ImageJ-1 with the Plugin FFTJ (if you mean 3D). >> <https://imagej.nih.gov/ij/plugins/fftj.html> > ... > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Greetings,
My apologies, I was working off the premise of my request for things already in ImageJ and that I did not want to have to install anything. I mistakenly commented on the builtin FFT in the Process>FFT menu. My current development environment is writing ImageJ Java plugins to process MRI data. I am in no way trying to suggest that there are problems with FFT as it exists in, or is available for, ImageJ for those that use it and find it useful; I am not raising any form of change request, just asking for information. I am stating that these are the issues that I would have with using this software for MY purposes, and when I require this functionality I will do what I can to rectify this situation; currently only on my wish list, albeit I tend to look ahead. This thread has been a perfect example of what I was referring to as 'asking stupid questions'. People hop on the bandwagon to tell you your wrong and never find out the value of the question or why it is being asked. By asking my question, I found out that there was a way to get the values from within an Roi, and that a FFT plugin exists that does not show up in my typical searching. Fred On Sun, May 24, 2020 4:07 pm, Herbie wrote: > Good day Fred! > > "imagej java fft' is the one that implements the Hartley transform." > > There is per se nothing wrong with this approach... > > "It does not provide the ability, at least through the gui, to do a > complex forward FFT, i.e., it only takes a single stack as input" > > Not true! > You can specify the Real part and the Imaginary part. > These are just the first two options in the FFTJ-forward dialog. > > "FFTJ seems to insist on doing a 3D FFT." > Not sure what you mean ("insist"?), because initially you were asking > for non-2D and I suspected you mean 3D. > But of course FFTJ does 2D FFT. > > If you need many 2D FFTs, i.e. those of images in a stack, then you need > a little macro and can call the FHT-based ImageJ-FFT. No problem. > > "The methods for doing 1D FFT are private, preventing this." > What do you mean with this? What is private? > > If you need 1D FFTs you can either use ImageJ's array-FFT, a 1D image, > or you may have a look at: > <https://www.gluender.de/Miscellanea/MiscTexts/UtilitiesText.html#Gl-2014-1> > > Presently, I see no dilemma with ImageJ and FFT. However, I must admit > that I can't always follow your logic, e.g. when you are speaking about > "some magic". > > Regards > > Herbie > > :::::::::::::::::::::::::::::::::::::::::::: > Am 24.05.20 um 22:45 schrieb [hidden email]: >> Greetings Herbie, >> >> Thanks for that link. The link that always shows up when I google >> 'imagej >> java fft' is the one that implements the Hartley transform. >> >> The link that you provided is a lot closer, although lacks what I need: >> >> a) It does not provide the ability, at least through the gui, to do a >> complex forward FFT, i.e., it only takes a single stack as input, >> apparently it assumes magnitude. The resultant k-space(re/im) stack is >> setup in a fashion that enables the complex inverse FFT. There may be >> some >> magic that can be performed to setup the image domain as per the >> resultant >> k-space domain and get a complex forward transform to be performed, >> although it is not apparent. There does not seem to be a way, though >> gui, >> to forward transform re,im k-space. >> >> MRI datasets, at least those used by MR Physicists, are complex. If I >> notice an artifact in my images (mag/pha or re/im) I would like to >> transform them to k-space and see if I can figure out the cause of the >> artifacts. >> >> b) FFTJ seems to insist on doing a 3D FFT. The majority of MRI datasets >> are a stack of slices, although easy to get around by creating single >> slice stacks. Also each direction in k-space is not the same and would >> be >> useful to transform each direction separately. The methods for doing 1D >> FFT are private, preventing this. >> >> So, thanks again for pointing me to this link. Although, there are >> other >> FFT implementations out there that fulfill these requirements. >> Unfortunately for me at the moment they are not available in my current >> chosen development environment. When the desire for a ...FFT transforms >> into a necessity, I will rectify my dilemma, until then... >> >> Fred >> >> On Fri, May 22, 2020 2:58 pm, Herbie wrote: >> ... >>> "Non-2D-image Complex forward and reverse Fourier transforms [...]" >>> ...are available for ImageJ-1 with the Plugin FFTJ (if you mean 3D). >>> <https://imagej.nih.gov/ij/plugins/fftj.html> >> ... >> > > -- > ImageJ mailing list: http://imagej.nih.gov/ij/list.html > -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html |
Free forum by Nabble | Edit this page |