2022年6月5日 星期日

s1073328 作業7

      

    1. 作業說明:


    • Morphological Image Processing數學形態學影像處理應用

                    利用數學形態學影像處理運算函式,設計一個計算圖像中圍棋個數的程式


    2. 開發環境:


    • Windows 10

    • Visual Studio 2017

    • OpenCV 4.5.5


    3. 程式流程:


  • 程式依序讀取資料夾中三張圖像,並經由一連串影像處理取得圖中棋子數量。                      
  • 首先,以灰階影像讀取圖像。


  • 將圖像進行二值化,使只有1與0。並將黑白互換,因為要讓圖像格式利於接下來的處理。


  • 接著利用數學形態學影像處理中的erode()函數,將圖中一些細微雜訊以及連結斷開。
  • 因為圖像中要偵測的物件有重疊,無法直接單純利用型態學中的侵蝕方式分割判斷個體。因此在此利用距離轉換函數,將棋子作為前景提出。

  • 對上述結果作閥值化之後,可以取得可能為棋子的中心及骨架資訊。
  • 接著,對影像做一次形態學處理,這次使用的是opening方法,也就是先侵蝕再膨脹,可以用以下函數實現。
                    

  • 最後,利用findContours()函數對影像進行輪廓偵測,並輸出偵測到的棋子個數,並結束程式。

    4. 成果展示:

            
            (1) 影像處理過程

                      左上圖:原圖。右上圖:二值化+反向。左下圖:距離轉換。右下圖:opening

IMG_5702.jpg

IMG_5703.jpg

IMG_5704.jpg



            (2) 程式預測棋子個數結果




            (3) Demo影片




沒有留言:

張貼留言