2021年6月11日 星期五

s1071546 影像處理作業 7

作業說明:

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

  • 請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。
  • 程式不一定可以算出正確棋子數量,越接近正確答案越好!

Coding環境:

  • Windows 10 20H2
  • Anaconda 3.18.11
  • Python 3.9.1
  • OpenCV 4.5.1

程式說明:

    使用threshold二值化後,用cv2.erode和cv2.dilate做影像侵蝕膨脹,最後用cv2.findContours找出邊緣並算出輪廓個數。
  1. 使用者在呼叫此程式時使用參數呼叫s1071546_hw7.py -i <要處理的檔案檔名> 來使用
  2. 使用cv2.imread將檔案載入並存成變數img
  3. 使用cv2.cvtColor將讀入圖片的色彩空間轉成Gray
  4. 使用cv2.GaussianBlur套用5*5的Filter減小邊界的影響 (Cr+OSTU)
  5. 使用cv2.threshold配合cv2.THRESH_OTSU來實現OTSU演算法找出適合的閥值並二值化
  6. 使用threshold=~threshold做負片效果
  7. 使用cv2.getStructuringElement取得橢圓形的kernel
  8. 使用cv2.erode侵蝕影像
  9. 使用cv2.dilate膨脹影像
  10. 使用cv2.findContours來算出輪廓個數
處理結果:

IMG_5702的處理結果

IMG_5703的處理結果

IMG_5704的處理結果





沒有留言:

張貼留言