Kinect嘗鮮(2) 骨骼識別

2021-07-24 16:25:36 字數 1077 閱讀 3178

其實骨骼識別更加簡單,通過微軟的sdk,我們僅僅要做的就是呼叫。微軟這麼做的好處就是開發者可以減少花費在底層、影象處理等方面的時間,專注於自己的應用邏輯,快速開發出有趣或實用的應用。

.cs 檔案中,首先要宣告乙個 skeleton 類,是乙個 skeleton 的陣列。skeleton是骨骼類,該類封裝了識別出的乙個人的所有骨骼資訊。由於視野中可能有多個人,每乙個人的骨骼資訊被儲存在了乙個skeleton中,所以此處宣告為陣列。kinect及其sdk已經把相關的識別和區分演算法做好了。

private skeleton skeletons;

然後要為獲取骨骼資料註冊事件的委託函式。

_kinect.skeletonframeready += new eventhandler(kinectskeletonframeready);

private void kinectskeletonframeready(object sender, skeletonframereadyeventargs e)

}if (isskeletondataready)

else

}}

using塊中,將所有的骨骼資訊複製到skeletons陣列中。由於在kinect視野中不一定是乙個人,數量是不確定的,此處為變長陣列,所以選擇每一幀重新初始化。在currentskeleton中,我們使用linq語句查詢正在被跟蹤的第乙個人,所有人是按距離從近到遠排序的。確保kinect正在跟蹤至少乙個人,然後可以定義畫刷,我使用的滑稽作為源,用該畫刷填充ellipse。我使用了乙個新的方法lockheadwithredspot(skeleton) 來跟蹤頭部。

private void lockheadwithredspot(skeleton s)

由於本篇及上篇使用的所有方法只能獲得頭部位置資料,並不能獲得頭部大小的資料,所以滑稽的大小要靠自己掌控。**中24是我自己試出來的半徑大小,可根據實際應用調整。

執行程式,效果如圖:

創新實訓 利用Kinect骨骼節點識別的判斷

利用kinect的骨骼節點識別,可以判斷人的動作,以下,利用骨骼節點判斷人手指的指向位置,來判斷手指指向的選項為a,b,c中的哪乙個 using system using system.collections.generic using system.linq using system.text u...

kinect指尖識別

張維祥的日誌 對於普通攝像頭下的手指識別,大多是基於模板匹配,神經網路和統計分析甚至於借助顏色指套等進行,但因為環境干擾太多,識別效果不好,而且大多只能識別手整體的運動,而不能識別手指的運動。本文是基於kinect攝像頭實現的,由於它支援深度影象,可以排除複雜的背景,而且支援例如openni和win...

骨骼的動作識別資料集 人體骨骼動作識別

參賽者須同意如下保密規則 1.保密資訊範圍 平台方向參賽者披露或提供的全部資訊,以及參賽者因參加本次大賽從平台方處獲得 知曉所得的商業秘密和其他所有非第三方所知的資訊,包括但不限於 1 平台方提供的 語音 資料 等 2 平台方從第三方處獲得但應承擔保密義務的資料 資訊 3 其他通常不為平台方以外的人...