Macros imageJ宏以堆栈形式打开每个子文件夹,并;“做点什么”;
各位, 我有一个包含多个子文件夹的文件夹,每个子文件夹包含18个tif(.tif)文件。 我想在imageJ中将每个子文件夹文件作为堆栈打开 通过一些在线宏文档, 我可以打开每个子文件夹中的文件,并执行一些操作,如将16位文件更改为8位文件 但根据我的分析需要,我需要打开每一个子floder作为一个堆栈, 我在使用宏获取堆栈时遇到一些问题 这是我目前掌握的代码Macros imageJ宏以堆栈形式打开每个子文件夹,并;“做点什么”;,macros,stack,imagej,Macros,Stack,Imagej,各位, 我有一个包含多个子文件夹的文件夹,每个子文件夹包含18个tif(.tif)文件。 我想在imageJ中将每个子文件夹文件作为堆栈打开 通过一些在线宏文档, 我可以打开每个子文件夹中的文件,并执行一些操作,如将16位文件更改为8位文件 但根据我的分析需要,我需要打开每一个子floder作为一个堆栈, 我在使用宏获取堆栈时遇到一些问题 这是我目前掌握的代码 inputDir = getDirectory("choose the input directory"); outputDir =
inputDir = getDirectory("choose the input directory");
outputDir = getDirectory("choose the output directory");
processDir(inputDir, outputDir);
function processDir(inputDir, outputDir) {
listdir = getFileList(inputDir);
for (j = 0; j < listdir.length; j++) {
print("Processing: " + listdir[j]);
File.makeDirectory(outputDir + listdir[j]);
outputFolder = outputDir + listdir[j];
inputFolder = inputDir + listdir[j];
setBatchMode(true);
processFolder(inputFolder);
setBatchMode(false);
}
}
function processFolder(inputFolder) {
list = getFileList(inputFolder);
for (i = 0; i < list.length; i++) {
processFile(inputFolder, outputFolder, list[i]);
}
}
function processFile(inputFolder, outputFolder, file) {
print("Processing: " + inputFolder + file);
open(inputFolder + file);
run("Image Sequence...", "open=[inputFolder + file] number=18 starting=1 increment=1 scale=100 file=[] or=[] sort");
run("Enhance Contrast", "saturated=0.35");
run("Apply LUT", "stack");
setAutoThreshold("Otsu dark");
setThreshold(60, 255);
run("Convert to Mask", " ");
print("Saving to: " + outputFolder);
saveAs("tiff", outputFolder+file);
close();
}
inputDir=getDirectory(“选择输入目录”);
outputDir=getDirectory(“选择输出目录”);
processDir(inputDir,outputDir);
函数processDir(inputDir,outputDir){
listdir=getFileList(inputDir);
对于(j=0;j
如果你能告诉我如何打开子文件夹作为一个堆栈
提前谢谢。除了R之外,我对其他语言并不十分精通,所以这个答案包含了很多来自网站的“片段”。从那以后已经有几天了,我还没有复制资料来源。很多道歉 下面的宏循环遍历目录的每个子文件夹,创建一个堆栈,然后对堆栈执行“操作”,在我的例子中,使用它生成一个gif,并将其保存在子文件夹的名称下
inputDir = getDirectory('Choose Input Directory');
outputDir = getDirectory('Choose Output Directory');
listFiles(inputDir);
list = getFileList(inputDir);
function listFiles(dir) {
list = getFileList(dir);
for (i=0; i<list.length; i++) {
setBatchMode(true);
for (i=0; i<list.length; i++) {
file = dir + list[i];
open(file);
title = getTitle();
saveAs("Gif", dir+title);
close();
}
setBatchMode(false);
}
}
inputDir=getDirectory('Choose Input Directory');
outputDir=getDirectory('Choose Output Directory');
列表文件(inputDir);
list=getFileList(inputDir);
函数列表文件(目录){
list=getFileList(dir);
对于(i=0;i我对R以外的其他语言不太精通,所以这个答案包含了很多来自网站的“片段”。从那以后已经几天了,我还没有复制源代码。非常抱歉
下面的宏循环遍历目录的每个子文件夹,创建一个堆栈,然后对堆栈执行“操作”,在我的例子中,使用它生成一个gif,并将其保存在子文件夹的名称下
inputDir = getDirectory('Choose Input Directory');
outputDir = getDirectory('Choose Output Directory');
listFiles(inputDir);
list = getFileList(inputDir);
function listFiles(dir) {
list = getFileList(dir);
for (i=0; i<list.length; i++) {
setBatchMode(true);
for (i=0; i<list.length; i++) {
file = dir + list[i];
open(file);
title = getTitle();
saveAs("Gif", dir+title);
close();
}
setBatchMode(false);
}
}
inputDir=getDirectory('Choose Input Directory');
outputDir=getDirectory('Choose Output Directory');
列表文件(inputDir);
list=getFileList(inputDir);
函数列表文件(目录){
list=getFileList(dir);
for(i=0;i我在这里制作了一个宏,它可以在文件夹上迭代、导入图像序列并另存为图像序列。您可以在“打开”和“保存”命令之间的for循环中详细说明希望它执行的操作。希望这会有所帮助
inputDir = getDirectory('Choose Input Directory');
outputDir = getDirectory('Choose Output Directory');
listdir = getFileList(inputDir);
for(i=0; i< listdir.length; i++) {
print("Processing: " + inputDir + listdir[i]);
File.makeDirectory(outputDir +listdir[i]);
inputFolder = inputDir + listdir[i];
outputFolder = outputDir + listdir[i];
inputFiles = getFileList(inputFolder);
inputFile = inputFolder + inputFiles[0];
run("Image Sequence...", "open=[inputFile] convert_to_rgb sort");
run("Image Sequence... ", "format=TIFF save=[outputFolder]");
close();
}
inputDir=getDirectory('Choose Input Directory');
outputDir=getDirectory('Choose Output Directory');
listdir=getFileList(inputDir);
对于(i=0;i
我在这里制作了一个宏,它可以在文件夹上迭代、导入图像序列并另存为图像序列。您可以在“打开”和“保存”命令之间的for循环中详细说明希望它执行的操作。希望这会有所帮助
inputDir = getDirectory('Choose Input Directory');
outputDir = getDirectory('Choose Output Directory');
listdir = getFileList(inputDir);
for(i=0; i< listdir.length; i++) {
print("Processing: " + inputDir + listdir[i]);
File.makeDirectory(outputDir +listdir[i]);
inputFolder = inputDir + listdir[i];
outputFolder = outputDir + listdir[i];
inputFiles = getFileList(inputFolder);
inputFile = inputFolder + inputFiles[0];
run("Image Sequence...", "open=[inputFile] convert_to_rgb sort");
run("Image Sequence... ", "format=TIFF save=[outputFolder]");
close();
}
inputDir=getDirectory('Choose Input Directory');
outputDir=getDirectory('Choose Output Directory');
listdir=getFileList(inputDir);
对于(i=0;i
Hi.我想知道你是否找到了解决这个问题的方法,因为我有相同的…?谢谢!Hi,我改为:Image J--拖动打开一个包含多个子文件夹的文件夹(这一步后你将打开多个堆栈)--打开宏,添加代码,不使用“inputDir”,但要处理堆栈中的其他代码,请不要忘记在宏的edn中添加“close()”——然后单击一个堆栈,单击“run”---其他堆栈相同,请单击堆栈单击运行。我使用此方法完成了我的工作,时间不长,希望能帮助您。谢谢。找到了一种满足我要求的方法。将作为答案,尽管我不确定它是否真的对您的任务有帮助。嗨,我想知道您是否找到了解决此问题的方法,因为e我有相同的…?谢谢!嗨,我改为:图像J---拖动打开一个包含许多子文件夹的文件夹(这一步后你将打开许多堆栈)-----打开宏,添加不带“inputDir”的代码,但其他你想处理堆栈的代码,不要放弃