請撰寫一個程式,利用數學型態學影像處理運算,計算出所附圖像(共三張)每張圖像中 圍棋個數。
a. 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋 子數量的螢幕截圖。
b. 程式不一定可以算出正確棋子數量,越接近正確答案越好!
使用環境:windows10、Visual Studio 2017、opencv-3.4.5
特殊程式片段:
利用cvtColor 將讀取的圖片轉為灰階
利用GaussianBlur進行平滑化處理
利用threshold進行圖像二值化
接著erode、getStructuringElement 函式進行侵蝕 使得交疊的圍棋有辦法分開
(getStructuringElement 內的矩陣尺寸隨著不同的圖片進行調整)
最後利用 findContours 計算邊界數量,即可算出大略的圍棋數量
功能與執行結果:
左邊為原始圖片
右邊為進行侵蝕處理之後
下面小黑窗顯示的是計算之後的邊界數量(圍棋數量)
圖片1:
erode的偵測邊界大小矩陣設成7*7
實際:24顆,偵測到21顆,誤差3顆
圖片2:
erode的偵測邊界大小矩陣設成6*6
實際:31顆,偵測到32顆,誤差1顆
圖片3:
erode的偵測邊界大小矩陣設成5*5
實際:31顆,偵測到31顆,誤差0顆
沒有留言:
張貼留言