ImageJ- как получить срезы из фактически обработанного изображения в стеке изображений

У меня проблема с получением имени файла из стека изображений в ImageJ. Я написал плагин, который может быть использован для стеков изображений и дает результат вывода для каждого изображения в стеке с помощью:

if (mfpc == true) {
            IJ.log(fileName+": Good");
        } else {
            IJ.log(fileName+": Bad");
        }

getTitle () работает для отдельных изображений, но показывает только имя стека для стеков, а не имя фактического фрагмента.

я также попытался получить имя фрагмента с помощью следующего кода

fileName = imp.getImageStack().getShortSliceLabel(imp.getCurrentSlice());

но он показывает только текущее выбранное изображение, а не изображение, которое обрабатывается плагином. Мое желаемое мышление заключается в следующем выводе (в то время как имя файла - Imagex.png):

  • Image1.png: хорошо
  • Image2.png: Bad
  • Image3.png: хорошо

Это возможно и если да, то как?:)

1 ответ

Вы можете получить имя среза, используя команду getInfo("slice.label");

Грязный способ решения проблемы: запустить Stack to Images, храните все имена в массиве, закройте все изображения, снова откройте свой стек.

Вот фрагмент кода на макроязыке ImageJ:

setBatchMode(true);

open("your_stack.tif")

n=nSlices;
titles=newArray(n);

run("Stack to Images");

// for every image (slice of the stack)
for(cpt=0;cpt<n;cpt++){
    titles[cpt]=getTitle(); //get its title
    close(); //then close it so focus goes to the next image
}

Array.print(titles);
Другие вопросы по тегам