ilastik / ilastik4ij

ImageJ plugins to run ilastik workflows
MIT License
22 stars 17 forks source link

Make import/export macro ready #13

Closed wolny closed 5 years ago

wolny commented 5 years ago

Fixes https://github.com/ilastik/ilastik4ij/issues/14

This PR allows headless processing via Fiji macros. E.g.:

import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.*;
import java.io.File;

public class My_Plugin implements PlugIn {
    public void run(String arg) {
        File dir = new File("<DATASET_DIR>");
        String inputDataset="data";
        String outputDataset="exported_data";
        String ilastikProject = "<ILASTIK_PROJECT_PATH>";
        int i = 0;
        for(File file : dir.listFiles((d, name) -> name.endsWith(".h5"))) {
            IJ.run("Import HDF5", String.format("select=%s datasetname=%s axisorder=tzyxc", file.getAbsolutePath(), inputDataset));
            IJ.run(IJ.getImage(), "Run Pixel Classification Prediction", String.format("saveonly=false projectfilename=%s chosenoutputtype=Probabilities", ilastikProject));
            IJ.run(IJ.getImage(), "Export HDF5", String.format("select=%s/output%d.h5 datasetname=%s compressionlevel=0", file.getParent(), ++i, outputDataset));
        }
    }
}