如何获取auto threshold Plugin使用的阈值

时间:2013-04-28 20:44:56

标签: imagej

我有以下代码,我从目录中读取图像并使用ImageJ Auto Threshold插件来分割我的图像。

dir = getDirectory("path");
list = getFileList(dir);

for (i=0; i<list.length; i++)
{
   if (endsWith(list[i], ".tif")) 
   {
        open(dir + list[i]);
        run("8-bit");
        run("Gaussian Blur...", "sigma=2");
        setAutoThreshold("Otsu dark");
        run("Convert to Mask");
        saveAs("TIFF", dir+list[i]);
        close();
    }
}

我想使用“Otsu dark”方法获取阈值,并修改该值(例如按比例缩放)并将其应用于我的图像以进行分割。

1 个答案:

答案 0 :(得分:5)

在ImageJ宏中,使用getThreshold(lower,upper)setThreshold(lower,upper)方法(here的文档)。

您的代码如下所示:

dir = getDirectory("path");
list = getFileList(dir);
factor = 1.5;

for (i=0; i<list.length; i++)
{
   if (endsWith(list[i], ".tif")) 
   {
        open(dir + list[i]);
        run("8-bit");
        run("Gaussian Blur...", "sigma=2");
        setAutoThreshold("Otsu dark");
        getThreshold(lower,upper);
        setThreshold(lower,upper*factor);
        run("Convert to Mask");
        saveAs("TIFF", dir+list[i]);
        close();
    }
}

如果您打算做更复杂的事情,请考虑使用scripting language提供的其他Fiji