public void process( BufferedImage input ) {
setInputImage(input);
image.reshape(input.getWidth(),input.getHeight());
transform.reshape(input.getWidth(),input.getHeight());
magnitude.reshape(input.getWidth(),input.getHeight());
phase.reshape(input.getWidth(),input.getHeight());
ConvertBufferedImage.convertFrom(input, image, true);
fft.forward(image,transform);
GDiscreteFourierTransformOps.shiftZeroFrequency(transform,true);
GDiscreteFourierTransformOps.magnitude(transform, magnitude);
GDiscreteFourierTransformOps.phase(transform, phase);
GPixelMath.log(magnitude, magnitude);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
setPreferredSize(new Dimension(image.width+50,image.height+20));
processedImage = true;
}});
doRefreshAll();
}