2013-09-21 31 views
1

我一直在試圖製作一個宏來計算圖像中的單元格。但是,我很難消除單元之間的重疊,並且程序要區分這些塊。ImageJ計數聚集的單元格

run("8-bit", "stack"); 
run("Subtract Background...", "rolling=5 light sliding stack"); 
run("Median...", "radius=1 stack"); 
run("Unsharp Mask...", "radius=0.8 mask=0.50 stack"); 
run("Invert LUT"); 
run("Auto Threshold", "method=Yen white stack"); 
run("Erode"); 
run("Erode"); 
run ("Watershed"); 
run("Analyze Particles...", "size=200-2000 circularity=0.50-1.00 show=[Count Masks] display exclude clear summarize add in_situ"); 

我使用圖像的堆棧中的宏。

我也試過使用GreyscaleReconstruct,但我沒有那麼成功。我用這個代碼

run("Open..."); 
selectWindow("A.png"); 
setBatchMode(true); 
a=getTitle(); 
run("8-bit"); 
run("Invert LUT"); 
run("Gaussian Blur...", "sigma=2"); 
run("Duplicate...", "title=_seed"); 
run("Minimum...", "radius=3"); 
run("GreyscaleReconstruct ", "mask="+a+" seed=_seed create"); 
imageCalculator("Subtract create", a,"_seed"); 
selectWindow("Result of "+a); 
rename("WhiteTopHatReconstructed"); 
run("Auto Threshold", "method=Otsu white"); 
setBatchMode(false); 
run("Analyze Particles...", "size=200-2000 circularity=0.50-1.00 show=[Count Masks] display exclude clear summarize add in_situ"); 

普萊斯幫助(或者與第一或第二的代碼!)謝謝! :)

這是我正在分析的圖像。 enter image description here

回答

3

重疊對象可能是一個棘手的問題。 Fiji wiki page on Segmentation討論了接近圖像分割的兩種主要方法:Trainable Weka Segmentation插件和更靈活的基於宏的工作流程。到目前爲止,你的嘗試更多地落入後一類。在你的情況下,我會建議給前者一個嘗試。

我打得有點與可訓練Weka中分割並得到了一些具有潛力,但仍然還未足夠好,結果:

Trainable Weka Segmentation

我分了圖像分爲四類:背景,中心的黑暗區域(「blob」),細胞本身(「class 1」)和穿過每個細胞的中線(「class 2」)。我的想法是分離這些中線,因爲從它們中可以更容易找到細胞中心,並且細胞的形狀非常規整。一旦擁有這些中心,重疊單元的問題就會基本消失。並且由於中線是方向性的,如果這對分析有用,您甚至可以計算細胞方向的角度。

這裏只有2類的面膜:

Mask

不幸的是,我第一次嘗試在單元格邊框也訓練成2級,但更多的調整也許這個問題可以消除。您還可以控制在對話框中使用哪些圖像特徵用於分類,這可能有助於分類。

一旦你有足夠好的分類器,你可以保存它(Save classifier),並批量應用到更多的圖像(Apply classifier)。所有可訓練的Weka分段也可以在腳本和宏中使用,所以如果需要,您可以將它與某些預處理和/或後處理結合使用。

如果您無法使第2類停止識別膜,您可以通過分析該特定形狀的掩模本身以將二元單元輪廓形狀歸結爲單元中心來跟進。也許有一個形態學操作員會幫助我,但我不是專家,所以我建議詢問ImageJ mailing list哪些專家閱讀。

您可以查看哪些可能有助於您的分析的另一個項目是CellProfiler。它提供了一套優秀的圖像處理模塊,他們還有一個出色的響應式論壇,您可以在這裏尋求具體數據的幫助。

+0

謝謝!我仍然必須自己嘗試。我只有一個問題,一旦我「訓練」它,我可以在宏中使用它嗎?謝謝 – Kaye11

+0

@ Kaye11當然。請參閱[可訓練的Weka細分文檔](http://fiji.sc/Trainable_Weka_Segmentation#Macro_language_compatibility)以獲取完整詳細信息。 – ctrueden