ImageJ if оператор не будет выполнять roiManager("Выбрать",#);

Наконец-то мой код заработал, за исключением одного оператора if, который я не могу исправить. Я выбираю ROI 3 и 4 на первом шаге, а затем, если выражение "если" выполнено, я хочу выбрать только 4-й ROI и удалить его. По какой-то причине он пропускает выбор ROI 4 и удаляет уже выбранные 3 и 4. Я пробовал selectWindow("Менеджер ROI"); раньше без удачи. Не совсем уверен, что проблема или как исправить. Спасибо!

roiManager("Select", newArray(3,4));
roiManager("Measure");
tempX1=getResult("X", 0);
tempY1=getResult("Y", 0);
tempX2=getResult("X", 1);
tempY2=getResult("Y", 1);
selectWindow("Results");
run("Close");

if (tempX1>(tempX2-2) && tempX1<(tempX2+2) && tempY1>(tempY2-2) && tempY1<(tempY2+2)) {
selectWindow("ROI Manager");
roiManager("Select", 4);
roiManager("Delete");
} 

1 ответ

roiManager("select", index); Команда аддитивна. Поскольку вы уже выбрали индексы 3 и 4, повторный выбор 4 не имеет никакого эффекта. призвание roiManager("Deselect"); до roiManager("select", 4); это действительно правильный курс действий, чтобы получить поведение по вашему желанию.

Смотрите подробности в документации по функции roiManager.

Другие вопросы по тегам