一、作業要求:
請撰寫一個程式,利用數學型態學影像處理運算,計算出所附圖像(共三張)每張圖像中
圍棋個數。
二、環境配置:
windows 10
visual studio 2013
opencv 3.4
三、實作方式:
先以IMREAD_GRAYSCALE讀入灰階圖,將讀入的灰階圖以threshold()進行二值化,一開始進行一般的erode()與dilate()發現在圖二的效果並不好,應該是受圖二棋子上的反光影響,將反光也判斷成棋子邊緣,導致多算出很多棋子,經過多次開運算與閉運算交錯實驗之後發現先以morphologyEx()內的MORPH_OPEN進行開運算後再進行dilate()可以將反光的邊緣補上,精準度也因此提高了不少,最後以findContours()找出邊緣,進而輸出辨識到的邊緣數量。
四、實作結果:
下面三圖為將作業圖片進行上述操作之後的結果。
圖一:
圖一:正確24 輸出:20
圖二:
圖二:正確31 輸出:34
圖三:
圖三正確31 輸出:31
棋子數量結果:
沒有留言:
張貼留言