Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macros ImageJ宏中奇怪的文件名导入行为_Macros_Imagej - Fatal编程技术网

Macros ImageJ宏中奇怪的文件名导入行为

Macros ImageJ宏中奇怪的文件名导入行为,macros,imagej,Macros,Imagej,我正在编写一个ImageJ宏来遍历一个包含.lsm共焦显微镜图像的文件夹,从每个图像创建一个Z投影,将两个通道组合成红色和绿色,并保存为RGB图像。对于一个目录,代码可以正常工作,但是现在它抛出了一个与getFileList中的文件名有关的错误 以下是代码的相关部分: dir1 = getDirectory("Choose Source Directory "); format = getFormat(); dir2 = getDirectory("Choose Destination Dire

我正在编写一个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();
}
dir1=getDirectory(“选择源目录”);
format=getFormat();
dir2=getDirectory(“选择目标目录”);
list=getFileList(dir1);
setBatchMode(真);
对于(i=0;i
有必要将“
”C1-MAX_u”
附加到输入字符串中,因为在调用Z Project和Split Channels时,这些前缀会添加到图像名称中

作为参考,文件名类似于
负1 5x.lsm
负2 5x.lsm
正1 5x.lsm
,等等。基于这些文件名,我希望ImageJ调用带有字符串“C1-MAX_负1 5x.lsm”和“C2-MAX_负1 5x.lsm”的合并通道命令

相反,我得到了错误消息“C1-MAX_负值”不是“C1(红色):”的有效选项


我不明白为什么ImageJ试图用字符串“C1-MAX_Negative”而不是“C1-MAX_Negative 1 5x.lsm”调用合并通道。为什么
list[i]
没有返回我认为应该返回的内容?

可能是因为文件名中有空格。尝试将名称放在方括号中,如下所示:

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