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);