我正在使用 MIJ 在 Matlab 中执行 ImageJ 宏。宏必须在“for”循环中多次执行。问题是 Matlab 不会等到宏结束。最初我用“while”循环解决了这个问题,检查从宏生成的“结果”表是否为空。但是,它只是第一次解决了问题,然后从第二次开始,“结果”表不再为空。我也想过在宏的末尾生成一个变量并用它来检查宏是否完成,但我不知道如何在Matlab中读取它。
你对我如何解决这个问题有什么建议吗?
非常感谢,阿莱西亚
这是我的代码示例:
javaaddpath 'C:/Program Files/MATLAB/R2019a_x64/java/ij.jar'
javaaddpath 'C:/Program Files/MATLAB/R2019a_x64/java/mij.jar'
MIJ.start('C:/fiji-win64/Fiji.app/plugins');
IJ=ij.IJ();
macro_path=...
'C:/Macro_waterinoil.ijm';
for pos=1:16
im = mijread(strcat('E:/droplets.tif'));
figure(1)
imshow(im,[0 255])
IJ.runMacroFile(java.lang.String(macro_path));
res_Hough=0;
res_Hough=MIJ.getResultsTable();
while res_Hough==0;
res_Hough=MIJ.getResultsTable();
end
im_res=MIJ.getCurrentImage();
MIJ.run('Clear Results');
MIJ.run('Close All');
end