幾何定位又叫幾何匹配。包括基於形狀,基於組件,基於互相關,變形匹配,三維匹配各種方法。其中基於形狀的幾何定位流程如下:
- 創建模板 create_shape_model()
金字塔級數 由numlevels 指定 值越大則 找到物體的時間 越少;
AngleStart 和AngleExtent 決定可能的旋轉範圍,AngleStep指定角度範圍搜索的步長;
MinConstrast將模板從圖像的噪聲中分離出來,如果灰度值的波動範圍是10,則MinConstrast應當設爲10;
Metric參數決定模板識別的條件,如果設爲’use_polarity’,則圖像中的物體和模板必須有相同的對比度; - 創建好模板後,這時還需要監視模板,用inspect_shape_model()來完成,它檢查參數的適用性,還能幫助找到合適的參數;
- 還需要獲得這個模板的輪廓,用於後面的匹配,get_shape_model_contours()則會很容易的幫我們找到模板的輪廓;
- 模板匹配find_shape_model()這個的功能就是在一幅圖中找出最佳匹配的模板,返回一個模板實例的長、寬和旋轉角度。
- 參數SubPixel決定是否精確到亞像素級,設爲’interpolation’,則會精確到,這個模式不會佔用太多時間,若需要更精確,則可設爲’least_square’,’lease_square_high’,
MinSocre 分析模板的旋轉對稱和它們之間的相似度,值越大,則越相似
Greediness 搜索貪婪度,這個值在很大程度上影響着搜索速度,若爲0,則爲啓發式搜索,很耗時,若爲1,則爲不安全搜索,但最快 - 找到之後,還需要對其進行轉化,使之能夠顯示,這兩個函數vector_angle_to_rigid()和affine_trans_contour_xld()在這裏就起這個作用。前一個是從一個點和角度計算一個剛體仿射變換,這個函數從匹配函數的結果中對構造一個剛體仿射變換很有用,把參考圖像變爲當前圖像。