2013-04-28 150 views
1

我有以下代碼,我從目錄中讀取圖像並使用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(); 
    } 
} 

我想獲得使用「大津黑」方法的閾值,並修改值(例如通過因子縮放),並把它應用到我的圖片進行分割。

回答

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提供的。

+0

謝謝你,這真的很有幫助。 – chans 2013-04-29 08:43:29