以前講過了如何用Aforge實現(xiàn)多點動作追蹤(基于Aforge的手勢識別之三~~~多點手勢識別),不過是在PC平臺上實現(xiàn)的,以前也實現(xiàn)了在WM/Wince上的Opencv庫移植,所以這次就嘗試在WM/Wince平臺上實現(xiàn)動作追蹤,代碼改自O(shè)pencv內(nèi)置的camshiftdemo.c例子。
本文先實現(xiàn)camshift的單幀識別,本文的代碼可以到這里下載:http://www.rayfile.com/zh-cn/files/284d11ca-c1fc-11df-9ae4-0015c55db73d/,代碼運行截圖:
選中圖片中綠色部分,程序自動用紅框圈出識別出來的部分。
接下來說說程序的原理:
1.計算被跟蹤目標(biāo)的色彩直方圖,在HSV中分離出HUE
2.使用HUE建立被追蹤顏色的直方圖,并產(chǎn)生反向投影圖空間
3.反向投影圖空間中使用mask凸顯追蹤顏色
4.搜索并計算出追蹤顏色部分的范圍
接下貼出在PC上運行單幀識別程序的各種運算結(jié)果,可以幫助理解代碼的原理:
把原圖通過RGB to HSV之后的結(jié)果
通過HSV中分離出的HUE
通過HUE建立的直方圖,統(tǒng)計選中顏色(原圖中選中的是綠色)
對Hue圖像做直方圖反向投影,然后做掩膜處理得到想要的部分
使用cvCamShift搜索出掩膜處理后凸顯的部分,并計算出范圍。
(審核編輯: 智匯小新)
聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請聯(lián)系我們刪除。
分享
分享