【发布时间】:2014-08-08 15:01:38
【问题描述】:
我正在编写一个 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_Negative 1 5x”调用合并通道命令.lsm”和“C2-MAX_Negative 1 5x.lsm”。
相反,我收到错误消息“C1-MAX_Negative”不是“C1(红色)的有效选择:”
我不明白为什么 ImageJ 尝试使用字符串“C1-MAX_Negative”而不是“C1-MAX_Negative 1 5x.lsm”来调用合并通道。为什么list[i] 没有返回我认为应该返回的内容?
【问题讨论】: