1.作業說明
數學型態學影像處理應用 Morphological Image Processing 請撰寫一個程式,利用數學型態學影像處理運算(erode(), dilate()等函式),計算出所附圖像(共三張)每張圖像中圍棋個數。
a.請在部落格呈現經由數學型態學影像處理運算後的圖像,同時要呈現你程式輸出棋子數量的螢幕截圖。
b.程式不一定可以算出正確棋子數量,越接近正確答案越好!
2.開發環境
ios 10.15.7
Jupyter Notebook
OpenCV - 4.5.5
3.實作方法
1.讀取檔案,並轉為灰階圖像。
2.使用數學型態學影像處理運算erode(),dilate(),將圍棋與圍棋分開。
3.輸出圖像大小,根據其調節minRadius和maxRadius。
4.運用HoughCircles偵測圍棋 :
image:輸入灰階圖。
method:偵測圓的方法,使用CV_HOUGH_GRADIENT。
dp:偵測解析度倒數比例,設dp=1,偵測圖和輸入圖尺寸相同。
minDist:圓彼此間的最短距離,太小的話可能會把鄰近的幾個圓視為一個,太大的話可能會錯過某些圓。
param1:圓偵測內部會呼叫Canny()尋找邊界,param1就是Canny()的高閾值,低閾值自動設為此值的一半。
param2:計數閾值,超過此值的圓才會存入circles。
minRadius:最小的圓半徑。
maxRadius:最大的圓半徑。
5.輸出檢測到的圓個數
6.根據檢測到的資訊畫出圓
7.用指定顏色標出圓的位置
8.存取標記後影像
4.執行結果
IMG_5702.jpg 實際數量:24個
原圖(左) / 數學型態學影像處理運算後的圖像(右):
沒有留言:
張貼留言