1. 作業說明:
- Morphological Image Processing數學形態學影像處理應用
利用數學形態學影像處理運算函式,設計一個計算圖像中圍棋個數的程式。
2. 開發環境:
- Windows 10
- Visual Studio 2017
- OpenCV 4.5.5
3. 程式流程:
- 程式依序讀取資料夾中三張圖像,並經由一連串影像處理取得圖中棋子數量。
- 首先,以灰階影像讀取圖像。
- 將圖像進行二值化,使只有1與0。並將黑白互換,因為要讓圖像格式利於接下來的處理。
- 接著利用數學形態學影像處理中的erode()函數,將圖中一些細微雜訊以及連結斷開。
- 因為圖像中要偵測的物件有重疊,無法直接單純利用型態學中的侵蝕方式分割判斷個體。因此在此利用距離轉換函數,將棋子作為前景提出。
- 對上述結果作閥值化之後,可以取得可能為棋子的中心及骨架資訊。
- 接著,對影像做一次形態學處理,這次使用的是opening方法,也就是先侵蝕再膨脹,可以用以下函數實現。
- 最後,利用findContours()函數對影像進行輪廓偵測,並輸出偵測到的棋子個數,並結束程式。
4. 成果展示:
(1) 影像處理過程
左上圖:原圖。右上圖:二值化+反向。左下圖:距離轉換。右下圖:opening
(2) 程式預測棋子個數結果
沒有留言:
張貼留言