Ошибка неопределенной переменной при запуске макроса в ImageJ

#imagej #fiji #imagej-macro

Вопрос:

Я новичок в макросах ImageJ и хочу использовать макрос на Фиджи. Код для макроса взят из этого источника.

 macro "MultiRoiMove Tool - C00cT0f16M" {
  if (RoiManager.selected<2) exit(); 
  indexes=split(call("ij.plugin.frame.RoiManager.getIndexesAsString"));
  roiManager("Combine");
  getCursorLoc(x, y, z, modifiers);
  Roi.getBounds(x0, y0, width, height);
  while(modifiersamp;16>0) {
    getCursorLoc(x1, y1, z, modifiers);
    Roi.move(x0 x1-x, y0 y1-y);
  }
  roiManager("select", indexes);
  roiManager("translate", x1-x, y1-y);
}
 

Я скачал код и сохранил его в виде текстового файла. Затем я запустил макрос, перейдя в Плагины > Макросы >> Выполнить. Версия ImageJ, которую я использую, составляет 1.53 дж.

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

введите описание изображения здесь

Я видел онлайн на форуме ImageJ, что этот макрос работает для других людей. Я провел некоторую отладку и знаю, что получаю ошибку, потому что код не входит в цикл while при запуске макроса, поэтому функция не x1 возвращает значение getCursorLoc .

Но я не знаю, как заставить код войти в цикл while. Кто-нибудь знает, нужно ли мне щелкнуть что-то конкретное перед запуском макроса? Мне кажется, что код войдет в цикл while, когда произойдет событие модификатора мыши (поскольку параметр модификаторов, возвращаемый функцией getCursorLoc, является флагами модификатора события мыши). Любая помощь будет признательна.

Ответ №1:

Вам нужно выбрать рентабельность инвестиций в менеджере рентабельности инвестиций, который вы хотите переместить. Вы можете нажать на первый, а затем cmd нажмите (на Mac), чтобы добавить дополнительные ROI. Затем макрос переместит эти ROI, но не те, которые не были выбраны.

modifiers Часть кода получает, какие кнопки мыши нажимаются, и если использовать щелчки левой кнопкой мыши (16) и перетаскивание, это определяет прямоугольник, который затем используется для перемещения ROI.

Вы должны выбрать Плагины > Макросы >> Установить, чтобы добавить инструмент на панель инструментов.