這裡來到了camshift演算法,opencv實現的第二部分,這一次重點討論mean shift演算法。
在討論mean shift演算法之前,首先討論在2d概率分布影象中,如何計算某個區域的重心(mass center)的問題,重心可以通過以下公式來計算:
1.計算區域內0階矩
for(int i=0;i
2.實現
在opencv中,有實現camshift演算法的函式,此函式的原型是:
cvcamshift(iplimage* imgprob, cvrect windowin,
cvtermcriteria criteria,
cvconnectedcomp* out, cvbox2d* box=0);
其中:imgprob:色彩概率分布影象。
windowin:search window的初始值。
criteria:用來判斷搜尋是否停止的乙個標準。
out:儲存運算結果,包括新的search window的位置和面積。
box:包含被跟蹤物體的最小矩形。
說明:1.在opencv 4.0 beta的目錄中,有camshift的例子。遺憾的是這個例子目標的跟蹤是半自動的,即需要人手工選定乙個目標。我正在努力嘗試全自動的目標跟蹤,希望可以和大家能在這方面與大家交流。
Camshift演算法研究
根據獲得的色彩直方圖將原始影象轉化成色彩概率分布影象,這個過程就被稱作 back projection 在opencv 中的直方圖函式中,包含back projection 的函式,函式原型是 void cvcalcbackproject iplimage img,cvarr backproject...
CamShift跟蹤演算法
ifdef ch pragma package opencv endif define cv no backward compatibility ifndef eic include cv.h include highgui.h include stdio.h include ctype.h end...
camShift跟蹤演算法介紹
camshift演算法的全稱是 continuously adaptive mean shift 即 連續自適應的meanshift 運算,並將上一幀的結果 即搜尋視窗的中心位置和視窗大小 作為下一幀meanshift 演算法的搜尋視窗的初始值,如此迭代下去。簡單點說,meanshift是針對單張尋...