我想重新打开已使用 show() 调用的 ImagePlus 文件。
也就是说,我已经打电话了
imp.show()
我关闭了包含图像的窗口,但现在我想在另一个窗口中重新打开 ImagePlus 文件(通过代码)。不幸的是,再次调用 imp.show() 不起作用。关于如何在新的 ImageJ 窗口中重新打开它的任何想法?
在ImageJ 邮件列表中进行搜索会为您提供答案(由 Michael Schmid 撰写):
关闭一个
ImageWindow
(ImageWindow.close
) 调用imp.flush()
,这
会删除 imp 的许多类变量(基本上所有
需要大量内存的东西都设置为 null)。
并提出一个可能的解决方案:
如果您没有堆栈,解决方案是
在 imp 中保留对 ImageProcessor 的引用并保留它而不是 imp(也是
roi)。如果您没有堆栈,您也可以尝试克隆 ImagePlus
以获得可以再次显示的副本 -
克隆的内存消耗会相当低(“浅克隆”)。