ImageJ宏路径问题

时间:2016-04-22 13:50:12

标签: javascript macros imagej

在我写的宏中,我试图使用以下结构从插件中导出结果:

savePath = newfolder+"\\"+fileid;
run("Export results", "filepath=savePath fileformat=[CSV (comma separated)]...;

其中 fileid 只是从数组中提取的文件的名称(即" cell_1")。

在调试控制台中,savePath读取" C:\ Users \ Main \ Directory ... \ file.csv" (即它显示正确指定)但没有文件输出到指定的文件夹。相反,它作为名为" savePath的文件输出到ImageJ Plugins文件夹。"但是,然后我使用" \"在注释中手动插入路径名。作为分隔符,它可以工作。

我知道有一个问题关于ImageJ如何处理\与\和/过去,但我尝试了一些修复,但没有一个有效。我尝试过的事情包括:

replace(savePath,"\\","\\\\");

以及

var s = File.separator;
replace(savePath,"\\",s);

replace(savePath,"\\","/");

并且没有一个有效。

有趣的是,我在序列中使用了另一个宏,它使用与savePath相同的格式,并且工作正常:

directory = getDirectory("Choose input directory");
newfolder=directory+fileid;
run("Image Sequence...", "open=newfolder file=act" );

其中, fileid 只是从数组中提取的文件的名称(即" cell_1")。

非常感谢有关此问题的任何帮助或解决方法!

1 个答案:

答案 0 :(得分:1)

事实证明,这更像是路径名格式的问题。路径名包含ImageJ很难识别的空间。将来,我会避免在我的文件夹和文件名中使用空格。此外,导出宏的正确格式是

savePath = newfolder+"\\"+fileid;
run("Export results", "filepath="+savePath+" fileformat=[CSV (comma separated)]...;

在输入变量时使用“+ ... +”。