2022年6月9日 星期四

s1081545 作業7

 作業說明:

數學型態學影像處理應用 Morphological Image Processing

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

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

開發環境:

·     Windows 10

·     Visual Studio 2013

·     C#

實作方法:

1.      讀取測試影像檔案,先將彩色圖轉成亮度圖,並依據門檻值,自動進行二值化處理,轉成黑白圖。

2.     由於黑色棋子有程度不一的碰觸或重疊,先簡單地利用3x3大小structuring element,針對二值化後的黑白圖進行MorphologyOpening process (先做Erosion,再做Dilation)

3.     由於黑色棋子有圓形的特性,圓形的公式為(x-Cx)2+(y-Cy)2=R2,其中(Cx, Cy)是圓心座標,R是半徑。因此,可透過Hough Transform,針對所有邊緣點做(Cx, Cy, R)的三維空間投票,找出邊緣點落在哪些可能的圓形上。

(1).      將前述進行MorphologyOpening process後結果圖,進行邊緣點偵測。

(2).      設定圓心座標可能的範圍,以及圓形半徑的範圍後,即可利用Hough Transform,找出可能的圓形區域。並透過圓形位置檢查,避免因誤差而找出重複圓形區域;再透過圓內正方形的黑點數比例檢查,避免找出錯誤的圓形區域。

執行結果:

1.     程式執行後,介面如下。













2.     按下『Load』鈕讀取測試影像Jpeg檔案,設定二值化所需的門檻值後,再按『Binarization』鈕,將原彩色圖自動轉為亮度圖,並依據二值化門檻值,自動轉為二值化黑白圖。













3.     先按『Erosion』鈕,再按『Dilation』鈕則可進行MorphologyOpening process













4.     按『Boundary』鈕,可自動針對MorphologyOpening process結果,進行邊緣點的偵測。













5.     按『Hough Transform』鈕,即可針對所有邊緣點做(Cx, Cy, R)的三維空間投票,找出邊緣點落在哪些可能的圓形上。並透過圓形位置檢查,以及圓內正方形的黑點數比例檢查,避免找出重複或錯誤的圓形區域。介面上會以紅色標示找出的圓形區域,並顯示數量。













6.     其他兩張測試影像的偵測結果,如下所示。














錯誤分析:

透過邊緣點的Hough Transform,仍無法找出的圓形區域,主要有兩個原因。

1.     與相鄰黑棋的疊合區域大,導致該圓形的邊緣點數量不足。

2.     透過MorphologyOpening process後,黑棋內的反光區域仍大,檢查圓形區域內正方形的黑點數比例,誤判為非正常圓形,而被去除。









程式執行結果:



沒有留言:

張貼留言