我正在编写一个ImageJ宏来迭代一个文件夹的.lsm共焦显微镜图像,从每一个做一个Z项目,将两个通道组合成红色和绿色,并保存为一个RGB图像。该代码对于一个目录运行良好,但现在它抛出了一个与getFileList文件名有关的错误。
下面是代码的相关部分:
dir1 = getDirectory("Choose Source Directory ");
format = getFormat();
dir2 = getDirectory("Choose Destination Directory ");
list = getFileList(dir1);
setBatchMode(true);
for (i = 0; i < list.length; i++) {
showProgress(i+1, list.length);
open(dir1+list[i]);
run("Z Project...", "projection=[Max Intensity]");
run("Split Channels");
run("Merge Channels...", "c1=C1-MAX_" + list[i] + " c2=C2-MAX_" + list[i]);
saveAs(format, dir2 + list[i]);
close();
}必须将"C1-MAX_"附加到输入字符串,因为在调用Z和拆分通道期间,这些前缀被添加到图像名称中。
作为参考,文件的名称类似于Negative 1 5x.lsm、Negative 2 5x.lsm、Positive 1 5x.lsm等。根据这些文件名,我希望ImageJ使用字符串“C1-MAX_负1 5x.lsm”和“C2-MAX_负1 5x.lsm”调用合并通道命令。
相反,我得到的错误消息“c1-max_负数”不是"C1 (红色):“的有效选择。
我不明白为什么ImageJ试图用字符串“c1-MAX_ 5x.lsm”调用合并通道,而不是“C1-MAX_负面1 5x.lsm”。为什么list[i]不返回我认为应该返回的内容?
发布于 2014-08-13 23:20:45
这可能是因为文件名中的空格。尝试将名称放在方括号中,如下所示:
run("Merge Channels...", "c1=[C1-MAX_" + list[i] + "] c2=[C2-MAX_" + list[i] + "]");https://stackoverflow.com/questions/25206458
复制相似问题