Исключение при запуске Fiji / ImageJ с Python

Я хочу написать код на Python, который будет использоваться для управления данными на Фиджи. Я выполнил инструкции по установке библиотеки imagej, чтобы получить доступ к Фиджи через Anaconda-Python. Вот как выглядят две строчки:

import imagej
ij = imagej.init('C:\Program Files\Fiji\Fiji.app')

Однако, когда я запускаю эти две строки, появляется следующая ошибка:

JavaException: JVM exception occurred: net/imagej/updater/UpdateService

Очевидно Python пытается получить доступ к Fiji Updater, но не может (это я понимаю ...) Как я могу правильно запустить Fiji без такой ошибки? Есть ли способ отключить это?


person pedro_galher    schedule 07.08.2019    source источник


Ответы (1)


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

person ejkiely    schedule 10.09.2019
comment
Конечно! Я тоже об этом думал ... Знаешь, где эта проверка обновлений на кнопке запуска? Спасибо :) - person pedro_galher; 11.09.2019
comment
Как бы то ни было, в конце концов я решил написать код прямо на Фиджи на его собственном языке ... - person pedro_galher; 11.09.2019
comment
Привет, @pedro_galher, я не уверен. Я исходил из предположения, что он будет существовать с самого начала, но могу ошибаться. Тем не менее, я нашел обсуждение на GitHub именно по этой теме! Вы можете найти это здесь: github.com/imagej/imagej-updater/issues/7 Не могли бы вы предоставить код макроса, который вы написали? Я также хотел бы увидеть, что вам удалось придумать в Python, и / или как вы можете заставить его общаться с FIJI. Я пытался сделать это сам, но меня снова тянет к написанию макросов, потому что они более доступны для моих коллег. - person ejkiely; 11.09.2019
comment
Конечно! Вот простой макрос, который я написал на Фиджи для анализа стопки изображений, созданных с помощью компьютерной томографии: github.com/pedrogalvez/Analysis-Stack-of-images - person pedro_galher; 12.09.2019
comment
Для написания макроса на языке Фиджи необходимо выполнить: Плагины ›Макросы› Загрузочные макросы. Затем вы выбираете IJ1 Macro на языковой панели в окне Script. Я предпочел писать все на языке Фиджи, поэтому в конце концов я не использую Python. Надеюсь, это поможет! - person pedro_galher; 12.09.2019
comment
Привет, Педро, мне удалось написать прямо на макроязыке (например, IJ1), но меня интересует ваше стремление к взаимодействию Python и FIJI, и я надеялся, что ваш макрокод даст мне некоторое представление об этом. В любом случае, как вам удается их объединить? Я вижу импорт и т. Д., Но как вы его программируете после открытия в Python? Все еще используете IJ1? Кроме того, попробуйте использовать / вместо \ и посмотрите, изменится ли это что-нибудь (заметив, что ваш каталог и исключение используют противоположности) - person ejkiely; 13.09.2019
comment
Ааа ... В конце концов, я не стал интегрировать их, так как все программировал в IJ1 и вообще не использовал Python. Изначально я думал о программировании на Python и запуске его на Фиджи, но я отверг эту идею, когда заметил, что это было не так просто, как я думал ... Так что в конце концов я сделал все на Фиджи ... - person pedro_galher; 13.09.2019
comment
Да, это своего рода вывод, к которому я пришел, ковыряясь вокруг. Между прочим, просматривая ваш макрос, я заметил, что он написан очень жестко (т.е. для использования его для файлов, хранящихся в другом месте, и т. Д. Потребуется редактирование самого макроса) и без включения пакетной обработки (т.е. вы видите все изображения и то, что с ними происходит в реальном времени на экране). Если вам нужна помощь в том, чтобы сделать его более гибким (путем ввода пользователем определенных переменных, которые меняются между наборами данных) и т. Д., Я, вероятно, смогу поработать с вами над тем, чтобы это произошло. - person ejkiely; 13.09.2019
comment
Это действительно полезно! Собственно, разве нельзя не видеть изображения при их обработке ?? Я полагаю, что отключение этого параметра должно значительно ускорить обработку. - person pedro_galher; 13.09.2019
comment
Привет, Педро, это абсолютно возможно! Все, что вам нужно сделать, это заключить ваши функции в setBatchMode (true); ... код ... setBatchMode (ложь); Это значительно сокращает время обработки. Если вам нужен пример более гибкой реализации языка макросов, вы можете проверить мой GitHub (github.com/evanjkiely/FIJIMacros). Кроме того, не хотели бы вы, чтобы я изменил предоставленный вами код, чтобы он был более гибким? Мы также можем найти способ сотрудничества, чтобы вы могли учиться на практике, а я мог отвечать на вопросы по мере возникновения. Если да, может быть, мы сможем написать напрямую - person ejkiely; 15.09.2019
comment
Большое спасибо! Конечно, я полностью согласен с сотрудничеством. Коды, которые я написал на Фиджи, вообще не оптимизированы, так как я просто использую их время от времени и не очень люблю тратить на них много времени, поскольку обычно я использую Python для своей повседневной работы. Однако мне было бы очень полезно поучиться на вашем опыте, если у меня возникнут вопросы :) Мой адрес электронной почты: [email protected] Спасибо! - person pedro_galher; 17.09.2019
comment
Я пришлю тебе письмо прямо сейчас! - person ejkiely; 17.09.2019