package ini.trakem2.imaging;
import ij.ImagePlus;
import mpicbg.imglib.algorithm.fft.PhaseCorrelation;
import mpicbg.imglib.algorithm.fft.PhaseCorrelationPeak;
import mpicbg.imglib.image.Image;
import mpicbg.imglib.image.ImagePlusAdapter;
import mpicbg.imglib.type.numeric.RealType;
public class PhaseCorrelationCalculator
{
final PhaseCorrelationPeak peak;
public <T extends RealType<T>, S extends RealType<S>> PhaseCorrelationCalculator( ImagePlus imp1, ImagePlus imp2 )
{
Image<T> img1 = ImagePlusAdapter.wrap( imp1 );
Image<S> img2 = ImagePlusAdapter.wrap( imp2 );
PhaseCorrelation<T, S> phase = new PhaseCorrelation<T, S>( img1, img2 );
if ( !phase.checkInput() || !phase.process() )
{
System.out.println( phase.getErrorMessage() );
}
peak = phase.getShift();
}
public PhaseCorrelationPeak getPeak()
{
return peak;
}
}