ImageJ - 减去背景
ImageJ - Subtract Background
我在 ImageJ 插件中使用 "Subtract Background" 操作,我正在尝试使用 BackgroundSubtracter class 来执行此操作,但结果与我使用时的结果不同宏语句。例如:
IJ.run(img, "Subtract Background...", "rolling=" + rollballsize + " light");
并更改为:
BackgroundSubtracter bs = new BackgroundSubtracter();
bs.rollingBallBackground(img.getProcessor(), (double)rollballsize, false, true, false, true, true);
使用第二个代码,我只有一个白色图像...
如果有人能给我解释一下,我将不胜感激。谢谢
当通过处理在16位或32位图像上进行运行背景减法时>减去背景...或通过高级IJ.run()
命令,插件自动将强度显示范围重置为图像的最小值和最大值。
要在使用低级函数调用时获得完全相同的可视化效果,您必须调用 ImageProcessor
的 resetMinAndMax()
方法:
BackgroundSubtracter bs = new BackgroundSubtracter();
bs.rollingBallBackground(img.getProcessor(), (double)rollballsize, false, true, false, true, true);
img.getProcessor().resetMinAndMax();
有关详细信息,请参阅 source of BackgroundSubtracter
。
我在 ImageJ 插件中使用 "Subtract Background" 操作,我正在尝试使用 BackgroundSubtracter class 来执行此操作,但结果与我使用时的结果不同宏语句。例如:
IJ.run(img, "Subtract Background...", "rolling=" + rollballsize + " light");
并更改为:
BackgroundSubtracter bs = new BackgroundSubtracter();
bs.rollingBallBackground(img.getProcessor(), (double)rollballsize, false, true, false, true, true);
使用第二个代码,我只有一个白色图像...
如果有人能给我解释一下,我将不胜感激。谢谢
当通过处理在16位或32位图像上进行运行背景减法时>减去背景...或通过高级IJ.run()
命令,插件自动将强度显示范围重置为图像的最小值和最大值。
要在使用低级函数调用时获得完全相同的可视化效果,您必须调用 ImageProcessor
的 resetMinAndMax()
方法:
BackgroundSubtracter bs = new BackgroundSubtracter();
bs.rollingBallBackground(img.getProcessor(), (double)rollballsize, false, true, false, true, true);
img.getProcessor().resetMinAndMax();
有关详细信息,请参阅 source of BackgroundSubtracter
。