作業說明:
請撰寫一個程式,利用數學型態學影像處理運算(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找出邊緣並算出輪廓個數。
- 使用者在呼叫此程式時使用參數呼叫s1071546_hw7.py -i <要處理的檔案檔名> 來使用
- 使用cv2.imread將檔案載入並存成變數img
- 使用cv2.cvtColor將讀入圖片的色彩空間轉成Gray
- 使用cv2.GaussianBlur套用5*5的Filter減小邊界的影響 (Cr+OSTU)
- 使用cv2.threshold配合cv2.THRESH_OTSU來實現OTSU演算法找出適合的閥值並二值化
- 使用threshold=~threshold做負片效果
- 使用cv2.getStructuringElement取得橢圓形的kernel
- 使用cv2.erode侵蝕影像
- 使用cv2.dilate膨脹影像
- 使用cv2.findContours來算出輪廓個數
沒有留言:
張貼留言