ImageJ軟體使用教程(三):目標計數

二次元攻城狮發表於2024-04-19

目錄
  • 多點工具法
  • 閥值分割法
    • 二值化
    • 填充分割
    • 自動計數
    • 顯示結果
  • 總結
  • 參考資料

本文以鋼筋計數為例,講解一下如何使用ImageJ軟體進行計數,這裡只介紹兩種方法:

  • 多點工具法
  • 閥值分割法

image

鋼筋計數是我接觸的第一個視覺專案,雖然專案最後不了了之,但作為我機器視覺的開荒專案還是很有紀念意義的。

多點工具法

多點工具法適用於數目不多的情況,講究大力出奇跡,純手動計數。
右鍵點工具選擇Multi-point Tool啟用工具:
image

雙擊點工具,設定點的顏色、形狀並勾選Label points
image

手動點選目標即可計數,按住Alt鍵點選則可取消該點
image

根據最後一個計數可得總共100根,也可以透過Analyze->Measure檢視計數結果和標註點的座標:
image

如果想把標註點儲存在圖片中,可以利用Image->Overlay->Flatten建立原始資料的一個副本,最後儲存後的副本圖片會存有標註點。

閥值分割法

閥值分割法適用於數目較多的情況,全自動化計數,相應的圖片預處理會比較麻煩。

二值化

先開啟圖片,執行以下預處理操作:

  • 點選Image->Type->8-bit,將圖片轉為灰度圖
  • 點選Image->Adjust->Threshold,調節閥值
  • 點選Apply即可得到二值化後的圖片

image

軟體會自動給一個合適的閥值,適當調節閥值不要讓橫截面完全斷開即可,橫截面粘連和細小干擾項留到後面處理。

填充分割

二值化後,部分橫截面存在空隙或粘連現象,可以透過以下操作進行處理:

  • 選擇 Process->Binary->Fill Holes填補截面空隙
  • 選擇 Process -> Binary -> Erode 腐蝕邊緣毛刺
  • 透過 Process->Binary->Watershed打斷重疊部分

image

第二步的腐蝕操作是為了去除毛刺,降低第三步打斷的難度,大約腐蝕兩次左右即可

自動計數

先隨便選取一個截面大概測試一下面積,這一步很重要,可以根據這個面積值過濾掉一些細小的干擾項
測量結果如下,截面面積大概在2000個畫素左右:
image

選擇Analyze->Analyze Particles開啟視窗,設定SizeShow
image

  • Size:1000-Infinity——指分析顆粒面積大於1000(單位是pixel),一直到無窮大的顆粒。
  • Circularity:0.00-1.00——指圓度,1.00為標準圓,一般不需要設定。
  • Show:Overlay Masks——在原圖顯示結果並標記,可以試試其它幾種輸出效果。
  • 勾選Add to Manager——方便後面把ROI顯示到原圖。

點選OK彈出計數結果,總計100根鋼筋:
image

image

顯示結果

開啟原圖,選擇Analyze->Tools->ROI Manager
image

點選右下角Show All在原圖上顯示結果:
image

總結

總的來說,多點計數適合數目小的目標計數,而閥值分割法適合數目多的目標計數。如果圖片質量比較差的話,使用閾值分割法會比較麻煩

參考資料

  • 【技術乾貨】超快速度完成細胞計數
  • 『零基礎』ImageJ + 機器學習影像處理
  • ImageJ實用技巧——自動細胞計數(解放雙手篇)

相關文章