2007年9月2日

以ImageJ計算黃豆數目

因為ImageJ功能十分強大,所以解決問題的方式就不只一種,以下我要用ImageJ來算黃豆數目!

國中階段會學到用標定捉放法來計算族群數目,我們會用豆子來當例子。現在我也用豆子來當例子計數。

前面算胚胎的方式如果套用在黃豆上,問題會很大。
因為黃豆彼此靠在一起,最後計算的時候,數目會嚴重誤差,除非把黃豆一顆一顆分開來。

用以下這方法也要注意背景顏色的選擇。因為拍攝光源的問題,所以每顆黃豆會有一個最亮的點,我就是用那個亮點來計算黃豆數目。如果用白色背景,那麼背景也會有亮點,最後就會有誤差啦。所以我這裡用的是黑色背景來拍攝黃豆。


開啟黃豆圖片之後,先把圖片做反相
Edit-->Invert


用以下功能來尋找亮點
Process-->Binary-->Find Maxima
  • 第一個Noise Tolerance的容忍值要經過測試才能知道。值數字太低,抓出來的點會變多,值太高,點會變少。
  • Output type:選擇Point Selection,這會把選出的點都標出來,而且還有編號
  • Exclude Edge Maxima:是否要排除圖片邊緣的物體
  • Light Background:我還搞不懂這個意思,不過以我這個例子,選了才會正確運算。
  • Preview Point Selection:預覽,勾下去之後,每次變更Noise Tolerance就會重新運算一次。

勾了之後出現的畫面如下,計算出114個點,這是正確答案,因為我有實際算過。

這些點就是標記在黃豆的最亮點,不過因為反相過,所以選擇的是最暗點。

用這個方法,要精算幾千個黃豆也不成問題。