我想用Java为Image J编写一个宏 在尝试使用特定文件夹中的图像时,我在第一行中出错,我不知道如何解决它。
源代码:
for (File file : new File("E:\\Ghent\\magnel\\Bjorn\\cap 1").listFiles()) {
if (file.isFile() && file.getName().toLowerCase().contains("cap")) {
//imageCalculator("Subtract create", "cap run_0001.fits","DCBB.fits");
imageCalculator("Subtract create",file.getName(),"DC.fits")
//run("Image Calculator...", "image1=[cap run_0001.fits] operation=Subtract image2=DCBB.fits create");
imageCalculator("Divide create", "Result of cap","DEN");
//run("Image Calculator...", "image1=[Result of cap] operation=Divide image2=[DEN] create");
saveAs(file.getName() . "_AD", "C:\\Users\\Nati\\Desktop\\prueba macro\\"_AD".tif");
答案 0 :(得分:0)
问题应该是使用\
。
尝试使用/
或\\
。
e.g。
new File("E:/Ghent/magnel/Bjorn/cap 1")
反斜杠是Java和许多其他语言中的特殊字符,您可以在java docs中阅读。
答案 1 :(得分:0)
您正在代码中混合使用 Java 和ImageJ1 macro language。
发生错误是因为您尝试将代码作为ImageJ宏运行,但第一行包含Java语法。
您有两种选择:
编译并运行您的代码作为Java插件。您可以在Java模式下使用Macro recorder来获取所需的命令,例如对于图像计算器:
ImageCalculator ic = new ImageCalculator();
ImagePlus imp1 = IJ.openImage(file.getName());
ImagePlus imp2 = WindowManager.getImage("DC.fits");
ImagePlus imp3 = ic.run("Subtract create", imp1, imp2);