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