我正在尝试使用ImageJ中的批处理脚本批量转换200多个原始.img文件.我的剧本:
//-----------Code starts here---------------------
dir1 = getDirectory("path/source");
dir2 = getDirectory("path/target");
list = getFileList(dir1);
setBatchMode(true);
for (i=0; i<list.length; i++) {
showProgress(i+1, list.length);
if(endsWith(list[i],".IMG"))
run("Raw...", open=["+dir1+list[i]+"] image=[16-bit Unsigned] width=2048 height=2048 offset=359 number=1 gap=0");
else
open(dir1+list[i]);
saveAs(format, dir2+list[i]);
close();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行它时,我收到以下错误:
我不知道为什么,因为我有一个; 关闭线...
错误消息具有误导性,因为您在第二个参数的开头缺少引号(")run():
run("Raw...", "open=["+dir1+list[i]+"] image=[16-bit Unsigned] width=2048 height=2048 offset=359 number=1 gap=0");
Run Code Online (Sandbox Code Playgroud)
错误消息中的<和>字符表示解析器发现意外情况的位置.
我编辑了您的原始代码以包含语法突出显示,这有助于发现此类错误.斐济的脚本编辑器包含语法高亮,在使用ImageJ宏时建议使用.
一般而言,ImageJ特定问题更有可能在专用论坛上发布时及时回答:http://forum.imagej.net/