<div dir="ltr"><div><div><div>Hi Sara<br><br></div>I've worked quite a bit with these classes the last couple of years.  The list and Stephen Priebisch (the author) has been pretty helpful, so consider them the final authority, but here is some information that might be helpful. <br>
<br></div>1.  The latest versions of the fft functions are in the fft2 directory.  (<a href="https://github.com/imglib/imglib/tree/master/algorithms/core/src/main/java/net/imglib2/algorithm/fft2">https://github.com/imglib/imglib/tree/master/algorithms/core/src/main/java/net/imglib2/algorithm/fft2</a>) they are a bit faster then those in 'fft'.  I believe the older versions are depreciated.<br>
<br>2.  The newer FFT (FFT.java <a href="https://github.com/imglib/imglib/blob/master/algorithms/core/src/main/java/net/imglib2/algorithm/fft2/FFT.java">https://github.com/imglib/imglib/blob/master/algorithms/core/src/main/java/net/imglib2/algorithm/fft2/FFT.java</a>) calculates dimensions and subsequent padding value as the first step in <i>realToComplex</i>.  It looks like it always does it as to get the dimensions optimized for speed.  Mines also supports dimensions optimized for small size and <i>FFTMethods</i> supports this. <br>
<br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">Why, for example, if I transform a 256x256 image I get back a 281x560 spectrum<br></blockquote><div>
<br></div><div>I not sure why this happened...  were you trying to compute a power spectrum??  Or just looking at the complex valued image that was returned after the FFT calculation??<br><br>The convolution function automatically pads as to avoid circular convolution at the edges.  So if your kernel size is also 256 by 256 the numbers make sense.  The image would get padded to 512 by 512 and the input to the FFT padded a bit more (560 by 560 sounds right) after transform 281X560 complex coefficients seems right. <br>
<br>(as a side note it seems that power of 2s are not an efficient size for mines FFTs I guess I will have to look at the details of the PFA algorithm to understand why... thanks for pointing out that mines uses PFA)<br><br>
</div><div>Brian<br></div></div><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote"><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">
<br></blockquote></blockquote></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jul 25, 2014 at 8:07 AM, SARA SCHIESARO <span dir="ltr"><<a href="mailto:sara.schiesaro@student.unife.it" target="_blank">sara.schiesaro@student.unife.it</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px">Hi all,</span><div style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Arial,Helvetica,sans-serif;font-size:13px">

I've already worked with FourierTransform and FFTConvolution classes, I've also studied their codes in order to adapt them to my program, anyway I still have some doubts about those classes and I hope you can help me! </div>

<div style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Arial,Helvetica,sans-serif;font-size:13px"><br></div><div style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Arial,Helvetica,sans-serif;font-size:13px">

First, dimensions of the output resulting from the FourierTransform and those of the fftKernel in the FFTConvolution class differ from those of the input images, why? Why, for example, if I transform a 256x256 image I get back a 281x560 spectrum?</div>

<div style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Arial,Helvetica,sans-serif;font-size:13px"><br></div><div style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Arial,Helvetica,sans-serif;font-size:13px">

Secondly, trying to find out an answer to the first doubt I have, I find out that the spectrum dimensions are calculated by using the package edu.mines.jtk.dsp and in particular the classes FftReal/FftComplex, both based on the Pfacc class. Comments to the Pfacc class said that this class implements the PFA algorithm for the FFT computation, so my second doubt is this: do the FourierTransform and FFTConvolution classes implement the PFA algorithm? </div>

<div style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Arial,Helvetica,sans-serif;font-size:13px"><br></div><div style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Arial,Helvetica,sans-serif;font-size:13px">

I really need to find it out in order to continue my work, so any help will be appreciated!</div><div style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Arial,Helvetica,sans-serif;font-size:13px">

Thanks a lot,</div><div style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Arial,Helvetica,sans-serif;font-size:13px"><br></div><div style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Arial,Helvetica,sans-serif;font-size:13px">

Sara S.</div></div>
<br>_______________________________________________<br>
ImageJ-devel mailing list<br>
<a href="mailto:ImageJ-devel@imagej.net">ImageJ-devel@imagej.net</a><br>
<a href="http://imagej.net/mailman/listinfo/imagej-devel" target="_blank">http://imagej.net/mailman/listinfo/imagej-devel</a><br>
<br></blockquote></div><br></div>