Создание ярлыка плагина для файла jar ImageJ - PullRequest
0 голосов
/ 25 января 2011

Я работал над проектом по биологии развития, маркируя различные ядерные маркеры вместе с окраской DAPI, чтобы определить процент экспрессии маркера.Я обнаружил, что плагин ImageJ ITCN (http://rsbweb.nih.gov/ij/plugins/itcn.html) отлично работает для каждого маркера, когда также используется программа CLAHE. Моя проблема в том, что у меня есть около 6000 изображений для анализа, и я хотел бы иметь возможность автоматизировать процесс.Я записал макрос, такой как следующий (который сам может быть зациклен на отдельные файлы изображений):

open("image");
run("8-bit");
run("CLAHE");
run("ITCN ");
close();

, но значок ITCN не начнет анализ автоматически, и при этом нет легко запрограммированного ярлыка для выполненияЯ совершенно не осведомлен о программировании на Java и хотел бы знать, есть ли способ обойти эту, вероятно, легкую проблему.

Заранее спасибо Майкл

Ответы [ 2 ]

1 голос
/ 25 января 2011

Плагин ITCN реализован как PlugInFrame, и его настройки недоступны для записи, как вы обнаружили. Однако, глядя на источник, кажется, что плагин просто использует другой класс с именем ITCN_Runner, как только он собрал параметры, которые вы должны иметь возможность вызывать программно.

Однако вы не можете сделать это на языке макросов. Вероятно, самая простая альтернатива - использовать встроенные скрипты Javascript в ImageJ. Например, запустите Macro Recorder как обычно, но выберите «JavaScript» в левом верхнем углу. Тогда первая пара команд появляется для меня (с некоторым переформатированием для ясности) как:

imp = IJ.openImage("/home/mark/test.tif");
IJ.run(imp, "8-bit", "");
IJ.run(imp,
       "Enhance Local Contrast (CLAHE)",
       "blocksize=127 histogram=256 maximum=3 mask=*None* fast_(less_accurate)");

Затем, если вы посмотрите на исходный код плагина ITCN, вы увидите, как создать класс ITCN_Runner и запустить его, например:

runner = new ITCN_Runner( imp,
                          1, /* width*/
                          5.0, /* minimum distance */
                          0, /* threshold */
                          false, /* detect dark peaks */
                          null /* mask ImagePlus */ )
runner.run()

Это производит вывод в другом окне, которое имеет то же имя, но с префиксом "Results ".

0 голосов
/ 25 января 2011

Спасибо, Марк.

К сожалению, при запуске сценария Java возникает ошибка.

ReferenceError: «ITCN_Runner» не определен. (# 6) в строке № 6

В нем говорится, что в строке бегуна ITCN есть неизвестный источник. Я не могу сказать, является ли это проблемой с кодом, тем фактом, что я просто скопировал и вставил ваш файл в устройство записи, не заходя в исходный код, или сам бегун ITCN.

Еще раз спасибо,

Michael

...