如何获取自动阈值使用的阈值插件
问题描述:
我有以下代码,我从目录中读取图像并使用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();
}
}
我想获得使用“大津黑”方法的阈值,并修改值(例如通过因子缩放),并把它应用到我的图片进行分割。
答
在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提供的。
谢谢你,这真的很有帮助。 – chans 2013-04-29 08:43:29