我一直致力于一个项目,我试图通过ImageJ宏来旋转图像,基本上相关的部分看起来像:
IJ.run(sourceImage, "Arbitrarily...", "angle=" + angle + " grid=1 interpolate enlarge");
因此,当我制作时,让5个角度为20,30,40,50,60的调用运行上面的方法,执行它的时间越来越大(对于线程和单线程应用程序都是如此) ) 所以大约处理持续时间是:
===========================
290 - 1. execution
656 - 2. execution
649 - 3. execution
1353 - 4. execution
6931 - 5. execution
===========================
那么,当对特定宏进行连续调用时,为什么对ImageJ的宏调用会变慢?
答案 0 :(得分:0)
我在这里看不到你在哪里使用ImageJ宏语言。您显示的代码是Javascript或Java,您正在调用的命令是运行Java插件,而不是宏。
每次IJ.run(sourceImage, "Arbitrarily...", ...)
来电,您都放大您的sourceImage
,因此每次调用后您都必须处理更多像素。
尝试从函数调用中省略enlarge
参数,看看是否仍然存在减速。
如果您想在每次轮播时从原始图片开始,请在轮播前使用sourceImage
复制imp = new Duplicator().run(imp);
。
顺便说一句,命令“Arbitrarily ...”仍然适用于compatibility reasons,但前一段时间已被“旋转......”取代< / em>,使用插件&gt;录制命令时,您也可以通过ImageJ菜单获得;宏&gt;录制...... 并切换到录制:Javascript 或 Java 。