2022年6月3日 星期五

s1073523 作業7

 

一、開發環境

  • Window 10
  • Visual studio code 1.42.1
  • OpenCV 4.4.0
  • Python 3.6.8

二、作業說明

請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。 

a.請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。 

b.程式不一定可以算出正確棋子數量,越接近正確答案越好!


三、實作方法 

  1. 輸入要跑的圖片數量與圖片名稱。
  2. 由於原圖太大,將圖片resize,大小為原圖的10分之1。
  3. 將圖片轉灰階,並使用threshold()做二值化。
  4. 將二值化的圖片做erode()與dilate(),讓圖片更清晰,更好的分辨棋子。
  5. 把dilate()後的圖片做Canny(),得到邊緣圖。
  6. 用邊緣圖做HoughCircles()偵測圓圈,minDist、param2、minRadius這三個參數需要一些嘗試,才能找到適合的值。
  7. 把偵測出來的棋子用circle()畫出來。

四、實作圖片

  • IMG_5702.jpg 原圖:24個,偵測:20個
erode()與dilate()結果

IMG_5702.jpg偵測結果

  • IMG_5703.jpg 原圖:31個,偵測:27個
erode()與dilate()結果

IMG_5703.jpg偵測結果
  • IMG_5704.jpg 原圖:31個,偵測:31個
erode()與dilate()結果

IMG_5704.jpg偵測結果



沒有留言:

張貼留言