ImageJ 宏循环无法切换到下一个ROI 仅重复使用首个ROI处理
ImageJ宏循环遍历ROI异常问题修复
问题根因
你当前宏的核心问题是循环内没有在选中下一个ROI前重新激活原图窗口:当第一轮循环执行run("Internal Clipboard")后,新生成的裁剪图会成为系统当前激活窗口,后续循环的roiManager("select",i)没有作用在你要处理的原图「AA」上,导致始终调用第一个ROI的参数执行复制。
修复方案
在循环内部第一行新增selectWindow("AA"),保证每次选择ROI都作用在原图上,同时可优化重命名逻辑避免纯数字命名冲突,修复后代码如下:
runMacro("OpenROI"); rename("AA"); selectWindow("AA"); n=roiManager("count"); for(i=0;i<n;i++){ selectWindow("AA"); roiManager("select",i); run("Copy"); run("Internal Clipboard"); rename("crop_" + i); } selectWindow("AA"); run("Close"); run("Images to Stack", "name=Stack title=[] use"); run("Z Project...", "projection=[Average Intensity]");
如果不需要修改命名规则,保留原有rename(i)逻辑也可正常运行。
内容的提问来源于stack exchange,提问作者Jonathan Pacheco
相关产品推荐
相关产品推荐

