在我写的宏中,我试图使用以下结构从插件中导出结果:
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")。
非常感谢有关此问题的任何帮助或解决方法!
答案 0 :(得分:1)
事实证明,这更像是路径名格式的问题。路径名包含ImageJ很难识别的空间。将来,我会避免在我的文件夹和文件名中使用空格。此外,导出宏的正确格式是
savePath = newfolder+"\\"+fileid;
run("Export results", "filepath="+savePath+" fileformat=[CSV (comma separated)]...;
在输入变量时使用“+ ... +”。