【问题标题】:Strange filename import behavior in ImageJ macroImageJ 宏中奇怪的文件名导入行为
【发布时间】: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.lsmNegative 2 5x.lsmPositive 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] 没有返回我认为应该返回的内容?

【问题讨论】:

    标签: macros imagej


    【解决方案1】:

    这可能是因为文件名中的空格。尝试将名称放在方括号中:

    run("Merge Channels...", "c1=[C1-MAX_" + list[i] + "] c2=[C2-MAX_" + list[i] + "]");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多