Как вызывать Z-функции из плагина на ImageJ

Доброе утро

В настоящее время я делаю подключаемый модуль для ImageJ в JAVA, который должен вызывать функцию «Z-проекция максимальной интенсивности», которая, как я знаю, уже есть в ImageJ, если вы выберете «Image/Stacks/Z». Проект...". Документация здесь: http://imagej.net/Z-functions#Maximum_Intensity_Z-projection

Я знаю, как вызывать плагины из других плагинов, но, делая то же самое в этом случае, я все время получаю сообщение «Ошибка».

public class Maximum_Intensity implements PlugIn{
    ImagePlus img = WindowManager.getCurrentImage();
    @Override
    public void run(String arg0) {
        // TODO Auto-generated method stub
        Object ZProjector = null;
        ZProjector = IJ.runPlugIn(img, "ZProjector", arg0);

        if(ZProjector==null){
            String arg = "Error";
            IJ.showMessage(arg);
        }
    }
}

Как мне это сделать? Большое спасибо.


person DanetDuo    schedule 26.09.2016    source источник


Ответы (1)


Вы можете легко использовать средство записи макросов для записи всех команд в ImageJ, см.:

https://imagej.nih.gov/ij/docs/guide/146-31.html#sub:Record...

Включите Java для рекордера, а затем используйте действие «Создать», чтобы создать подключаемый модуль ImageJ из записанных действий интерфейса.

В следующем примере (созданном с помощью рекордера) я применил параметр Max. Функция интенсивности в стеке.

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

public class My_Plugin implements PlugIn {

    public void run(String arg) {
        ImagePlus imp = IJ.openImage("http://imagej.nih.gov/ij/images/mri-stack.zip");
        IJ.run(imp, "Z Project...", "projection=[Max Intensity]");
        imp.show();
    }

}

Описание класса ZProjector можно найти здесь (для создания экземпляра):

https://imagej.nih.gov/ij/developer/api/ij/plugin/ZProjector.html

person Marcel    schedule 01.10.2016