目錄
- 多點工具法
- 閥值分割法
- 二值化
- 填充分割
- 自動計數
- 顯示結果
- 總結
- 參考資料
本文以鋼筋計數為例,講解一下如何使用ImageJ軟體進行計數,這裡只介紹兩種方法:
- 多點工具法
- 閥值分割法
鋼筋計數是我接觸的第一個視覺專案,雖然專案最後不了了之,但作為我機器視覺的開荒專案還是很有紀念意義的。
多點工具法
多點工具法適用於數目不多的情況,講究大力出奇跡,純手動計數。
右鍵點工具選擇Multi-point Tool
啟用工具:
雙擊點工具,設定點的顏色、形狀並勾選Label points
:
手動點選目標即可計數,按住Alt
鍵點選則可取消該點:
根據最後一個計數可得總共100根,也可以透過Analyze
->Measure
檢視計數結果和標註點的座標:
如果想把標註點儲存在圖片中,可以利用Image
->Overlay
->Flatten
建立原始資料的一個副本,最後儲存後的副本圖片會存有標註點。
閥值分割法
閥值分割法適用於數目較多的情況,全自動化計數,相應的圖片預處理會比較麻煩。
二值化
先開啟圖片,執行以下預處理操作:
- 點選
Image
->Type
->8-bit
,將圖片轉為灰度圖 - 點選
Image
->Adjust
->Threshold
,調節閥值 - 點選
Apply
即可得到二值化後的圖片
軟體會自動給一個合適的閥值,適當調節閥值不要讓橫截面完全斷開即可,橫截面粘連和細小干擾項留到後面處理。
填充分割
二值化後,部分橫截面存在空隙或粘連現象,可以透過以下操作進行處理:
- 選擇
Process
->Binary
->Fill Holes
填補截面空隙 - 選擇
Process
->Binary
->Erode
腐蝕邊緣毛刺 - 透過
Process
->Binary
->Watershed
打斷重疊部分
第二步的腐蝕操作是為了去除毛刺,降低第三步打斷的難度,大約腐蝕兩次左右即可。
自動計數
先隨便選取一個截面大概測試一下面積,這一步很重要,可以根據這個面積值過濾掉一些細小的干擾項。
測量結果如下,截面面積大概在2000個畫素左右:
選擇Analyze
->Analyze Particles
開啟視窗,設定Size
和Show
:
- Size:1000-Infinity——指分析顆粒面積大於1000(單位是pixel),一直到無窮大的顆粒。
- Circularity:0.00-1.00——指圓度,1.00為標準圓,一般不需要設定。
- Show:Overlay Masks——在原圖顯示結果並標記,可以試試其它幾種輸出效果。
- 勾選
Add to Manager
——方便後面把ROI顯示到原圖。
點選OK
彈出計數結果,總計100根鋼筋:
顯示結果
開啟原圖,選擇Analyze
->Tools
->ROI Manager
:
點選右下角Show All
在原圖上顯示結果:
總結
總的來說,多點計數適合數目小的目標計數,而閥值分割法適合數目多的目標計數。如果圖片質量比較差的話,使用閾值分割法會比較麻煩。
參考資料
- 【技術乾貨】超快速度完成細胞計數
- 『零基礎』ImageJ + 機器學習影像處理
- ImageJ實用技巧——自動細胞計數(解放雙手篇)