s1081523 作業7
作業說明:
主題:
數學型態學影像處理應用 Morphological Image Processing
請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。
a.
請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。
b.
程式不一定可以算出正確棋子數量,越接近正確答案越好!
開發環境:
· Windows 10
· Visual Studio
2019
· OpenCV 4.5.5
· Python 3.10
實作方法:
1.
先用imread()讀取圖片。
2.
將圖片做二值化後黑白反轉(方便之後做辨識)
3. 設定kernel = kernel
m*n進行erode,這邊經過手動測試找出最接近目測棋子數量的值,分別是: 第一張圖(IMG_5702.JPG)用280*280大約最接近(22/24顆)
第二張圖(IMG_5702.JPG)用200*200大約最接近(30/31顆)第三張圖(IMG_5702.JPG)用200*200可全部辨識(31/31顆)
4. 將剛剛二值化過的圖片進行erode
5. 檢測輪廓,這裡使用contour,用findContours函數計算,每偵測到一個封閉圖形就將count+1,最後輸出算出的結果。
6. 調整輸出視窗大小並且輸出圖片
執行結果:
IMG_5702.JPG:
原圖:
二值化後反白:
經過erode: kernel設為280*280
IMG_5703:
原圖:
二值化後反白:
經過erode: kernel設為200*200
IMG_5704:
原圖:
二值化後反白:
經過erode: kernel設為200*200
沒有留言:
張貼留言