請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。
- 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。
- 程式不一定可以算出正確棋子數量,越接近正確答案越好!
二、 使用環境:
1. Python
2. OpenCV
三、 實作方法:
1. cv2.imread()讀取所有圖片
2. cv2.threshold()對影像作二值化,因為cv2.erode()跟cv2.dilate()只接受二值化的圖片
3. cv2getStructuringElement(cv2.MORPH_RECT, (5,5))產生kernel,為erode()與dilate()參數之一
4. cv2.erode()對影像侵蝕,次數為1
5. cv2.dilation()對影像膨脹,次數隨圖片調整,為50上下
四、 實作結果:
1. "IMG_5702.JPG":實際24個,偵測到24個棋子
6. cv2.findContours()偵測輪廓,回傳contours的長度為棋子的個數
四、 實作結果:
1. "IMG_5702.JPG":實際24個,偵測到24個棋子
76次dilation |
2. "IMG_5703.JPG":實際31個,偵測到31個棋子
44次dilation |
3. "IMG_5704.JPG":實際31個,偵測到31個棋子
40次dilation |
沒有留言:
張貼留言