CamShift算法----OpenCV實現3 CamShift算法

原文http://blog.csdn.net/houdy/archive/2004/11/23/191828.aspx

1.原理
在瞭解了MeanShift算法以後,我們將MeanShift算法擴展到連續圖像序列(一般都是指視頻圖像序列),這樣就形成了CamShift算法。CamShift算法的全稱是"Continuously Apaptive Mean-SHIFT",它的基本思想是視頻圖像的所有幀作MeanShift運算,並將上一幀的結果(即Search Window的中心和大小)作爲下一幀MeanShift算法的Search Window的初始值,如此迭代下去,就可以實現對目標的跟蹤。整個算法的具體步驟分5步:
Step 1:將整個圖像設爲搜尋區域。
Step 2:初始話Search Window的大小和位置。
Step 3:計算Search Window內的彩色概率分佈,此區域的大小比Search Window要稍微大一點。
Step 4:運行MeanShift。獲得Search Window新的位置和大小。
Step 5:在下一幀視頻圖像中,用Step 3獲得的值初始化Search Window的位置和大小。跳轉到Step 3繼續運行。

2.實現
在OpenCV中,有實現CamShift算法的函數,此函數的原型是:
  cvCamShift(IplImage* imgprob, CvRect windowIn,
                CvTermCriteria criteria, 
                CvConnectedComp* out, CvBox2D* box=0);
其中:
   imgprob:色彩概率分佈圖像。
   windowIn:Search Window的初始值。
   Criteria:用來判斷搜尋是否停止的一個標準。
   out:保存運算結果,包括新的Search Window的位置和麪積。
   box:包含被跟蹤物體的最小矩形。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章