import ij.*; import ij.plugin.filter.PlugInFilter; import ij.process.*; import com.mathworks.engine.MatlabEngine; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; public class Demo_Figure implements PlugInFilter { Future<MatlabEngine> engFuture; MatlabEngine eng; public Demo_Figure() { try { engFuture = MatlabEngine.startMatlabAsync(); } catch (Exception e) { IJ.log(String.format("exception! %s", e)); } } public int setup(String arg, ImagePlus imp) { if (IJ.versionLessThan("1.37j")) return DONE; else return DOES_ALL+DOES_STACKS+SUPPORTS_MASKING; } public void run(ImageProcessor ip) { try { // Display the image in a Matlab figure float[][] imf = ip.getFloatArray(); eng = engFuture.get(); Future<Double> future = eng.fevalAsync("factorial", (double) 10); double d = future.get(); IJ.log(String.format("10! = %f", d)); eng.putVariableAsync("im", imf); eng.fevalAsync("figure"); } catch (Exception e) { IJ.log(String.format("exception! %s", e)); } } } -- ImageJ mailing list: http://imagej.nih.gov/ij/list.html