一、作業說明
請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。
二、作業環境
● Windows 10
● Python 3.7.10
● opencv 4.2.0
三、實作方法
Way1
1.讀入圖片
2.將圖片轉成灰階
3.用較大的Kernal對灰階圖做Erosion
4.用較小的Kernal對灰階圖做Erosion
5.對灰階圖做Dilation
6.使用cv2.findContours尋找輪廓,並利用找到的輪廓數作為預測的棋數
Way2
1.讀入圖片
2.將圖片轉成灰階
3.對原圖做cv2.HoughCircles並將中心點用黑色覆蓋在灰階圖上
4.用較大的Kernal對灰階圖做Erosion
5.用較小的Kernal對灰階圖做Erosion
6.對灰階圖做Dilation
7.在灰階圖上畫上cv2.HoughCircles的結果
8.使用cv2.findContours尋找輪廓,並利用找到的輪廓數作為預測的棋數
四、執行結果
● 左圖為Way1,右圖為Way2
● HoughCircles只出現在Way2中,故只有一張圖
Predict Result
Original Image
HoughCircles
Additional step in Way2 |
Erosion
*Way2: original image(gray) - houghcircles -> erosion |
Dilation
*Way2: (previous step result -> dilation) + houghcircles |
Contours
output_IMG_5703.JPG |
*Way2: original image(gray) - houghcircles -> erosion |
|
Contours
Original Image
Erosion
|
Dilation
|
Contours
沒有留言:
張貼留言