<div dir="ltr">Hi Micheal<div><br></div><div>I am not entirely familiar with 'FourierTransform' because I've been using the newer FFT.java class but I think the differences you are seeing are because 'FourierTransform' has different preprocessing and extension related settings.</div><div><br></div><div>If you look at FourierTransform.java you can see that the constructor you used in turn calls another constructor</div><div><br></div><div><a href="https://github.com/imglib/imglib2-algorithm-gpl/blob/master/src/main/java/net/imglib2/algorithm/fft/FourierTransform.java">https://github.com/imglib/imglib2-algorithm-gpl/blob/master/src/main/java/net/imglib2/algorithm/fft/FourierTransform.java</a><br></div><div><br></div><div>It looks like the 'preprocessing' option defaults to "relativeExtensionFade' and 'relativeImageExtension' is set to 0.25.  </div><div><br></div><div>In contrast FFT.java only extends to the nearest 'fast' FFT size and uses a constant padding strategy. </div><div><br></div><div>Keep us up to date on how things are going.  If you manage to get the tutorial working with the new FFT I think that would be a great addition to the tutorial.  </div><div><br></div><div>Brian</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 17, 2014 at 3:54 AM, Michael Ellis <span dir="ltr"><<a href="mailto:michael.ellis@dsuk.biz" target="_blank">michael.ellis@dsuk.biz</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am trying to reproduce example<br>
<br>
imglib2-tutorials Example6c<br>
<br>
<a href="https://github.com/imglib/imglib2-tutorials/blob/master/src/main/java/Example6c.java" target="_blank">https://github.com/imglib/imglib2-tutorials/blob/master/src/main/java/Example6c.java</a><br>
<br>
using the new net.imglib2.algorithm.fft2.FFT rather than the old deprecated net.imglib2.algorithm.fft.FourierTransform<br>
<br>
The original example code does:<br>
<br>
        // compute fourier transform of the template<br>
        final FourierTransform< FloatType, ComplexFloatType> fft<br>
                = new FourierTransform< FloatType, ComplexFloatType>(<br>
                        template, new ComplexFloatType());<br>
        fft.process();<br>
        Img< ComplexFloatType> templateFFT = fft.getResult();<br>
<br>
Which produces an image of size templateFFT minX=0 minY=0 maxX=40 maxY=79<br>
<br>
My new code looks like this:<br>
<br>
            ImgFactory<ComplexFloatType> fftImgFactory = null;<br>
            try {<br>
                fftImgFactory = template.factory().imgFactory(new ComplexFloatType());<br>
            } catch (IncompatibleTypeException ex) {<br>
                fftImgFactory = null;<br>
            }<br>
<br>
            // compute fourier transform of the template<br>
            Img< ComplexFloatType> templateFFT2 = FFT.realToComplex(template, fftImgFactory);<br>
<br>
Which produces an image of size templateFFT2 minX=0 minY=0 maxX=36 maxY=71<br>
<br>
Also it looks like the image produced by the old FourierTransform and new FFT differ in that the results are shifted in X and Y.<br>
<br>
Can anyone help?<br>
<br>
In particular I want to achieve the image alignment functionality that is done in Example6c.java without using deprecated code.<br>
<br>
Many thanks — Michael Ellis<br>
<br>
<br>
<br>
<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>
</blockquote></div></div>