均值漂移(meanShift、CamShift)

    xiaoxiao2021-03-25  167

    均值漂移主要用在視覺跟蹤,作法為從反投影直方圖的概率圖,得到目標影像出現在原始影像各個位置的概率,假設我們已知物體的大概位置,從這最初的位置,迭代移動來得到最大概率的位置,就是目標影像的精確位置,所以一開始的大概位置會影響到計算結果和花費時間。

    OpenCV提供meanShift()函式處理均值漂移,計算預定窗口的加權平均值,將窗口中心移動到數據點的重心處,並重複這個過程來鎖定局部最大值,直到窗口重心收斂到一個穩定點,meanShift()函式定義了兩種終止條件,分別是迭代次數以及窗口中心的位移量,這個終止條件保存在TermCriteria中。

    OpenCV另外有CamShift算法,這是一個改良的均值漂移算法,會調整搜尋窗口的尺寸和方向角度。


    OpenCV均值漂移

    int meanShift(InputArray probImage, Rect& window, TermCriteria criteria)

    probImage:輸入反投影圖。window:一開始的搜尋窗口。criteria:停止條件。window最後變更為搜尋結果的位置,函式返回迭代次數。

    TermCriteria(int type, int maxCount, double epsilon) //TermCriteria類別的建構式

    type:停止型態,COUNT、EPS或COUNT + EPS。maxCount:迭代次數的最大值。epsilon:停止條件,迭代在多少的準確度下停止。

    OpenCV均值漂移

    RotatedRect CamShift(InputArray probImage, Rect& window, TermCriteria criteria)

    probImage:輸入反投影圖。window:一開始的搜尋窗口。criteria:停止條件。函式返回搜尋結果的旋轉矩形。

    转自:http://monkeycoding.com/?p=555

    转载请注明原文地址: https://ju.6miu.com/read-896.html

    最新回复(0)