2022年6月6日 星期一

s1081523 作業7

 

 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





 

沒有留言:

張貼留言