@@ -0,0 +1,1896 @@
+package net.imagej.ops.fft.filter;%0A%0Aimport org.scijava.plugin.Parameter;%0A%0Aimport net.imagej.ops.Op;%0Aimport net.imagej.ops.OpService;%0Aimport net.imglib2.RandomAccessibleInterval;%0Aimport net.imglib2.img.Img;%0Aimport net.imglib2.type.numeric.ComplexType;%0Aimport net.imglib2.type.numeric.RealType;%0A%0A/**%0A * Abstract class for FFT based filters that operate on RAI%0A * %0A * @author bnorthan%0A * %0A * @param %3CI%3E%0A * @param %3CO%3E%0A * @param %3CK%3E%0A * @param %3CC%3E%0A */%0Apublic abstract class AbstractFFTFilterRAI%3CI extends RealType%3CI%3E, O extends RealType%3CO%3E, K extends RealType%3CK%3E, C extends ComplexType%3CC%3E%3E%0A%09%09implements Op %7B%0A%0A%09@Parameter%0A%09protected OpService ops;%0A%0A%09/**%0A%09 * input rai. If extension is desired it needs to be done before passing the%0A%09 * rai to the op%0A%09 */%0A%09@Parameter%0A%09protected RandomAccessibleInterval%3CI%3E raiExtendedInput;%0A%0A%09/**%0A%09 * kernel rai. Needs to be the same size as the input rai%0A%09 */%0A%09@Parameter(required = false)%0A%09protected RandomAccessibleInterval%3CK%3E raiExtendedKernel;%0A%0A%09/**%0A%09 * Img to be used to store FFTs for input. Size of fftInput must correspond%0A%09 * to the fft size of raiExtendedInput%0A%09 */%0A%09@Parameter(required = false)%0A%09protected Img%3CC%3E fftInput;%0A%0A%09/**%0A%09 * Img to be used to store FFTs for kernel. Size of fftKernel must%0A%09 * correspond to the fft size of raiExtendedKernel%0A%09 */%0A%09@Parameter(required = false)%0A%09protected Img%3CC%3E fftKernel;%0A%0A%09/**%0A%09 * RAI to store output%0A%09 */%0A%09@Parameter(required = false)%0A%09protected RandomAccessibleInterval%3CO%3E output;%0A%0A%09/**%0A%09 * Boolean indicating that the input FFT has allready been calculated (use%0A%09 * when re-using an input with the same kernel size)%0A%09 */%0A%09@Parameter(required = false)%0A%09protected boolean performInputFFT = true;%0A%0A%09/**%0A%09 * Boolean indicating that the kernel FFT has allready been calculated (use%0A%09 * when re-using an input with the same kernel size)%0A%09 */%0A%09@Parameter(required = false)%0A%09protected boolean performKernelFFT = true;%0A%0A%7D%0A

Add AbstractFFTFilterRAI