我想估算Kinect傳感器拍攝的場景中玩家的深度位置,以便在需要評估手和玩家距離的算法中使用此信息「玩家的身體」。在這種情況下,「玩家的身體」這個概念可以轉化爲一個代表玩家深度位置的值(這就是我正在尋找的)。估算玩家深度的大概位置
很明顯,因爲一個人佔據了空間的體積,我們知道無法在場景中定義玩家的精確位置。
我想知道的是:使用骨架數據來計算人的縱深位置的最佳做法是什麼?
我試圖用下面的代碼:
Skeleton playerSkeleton = (from s in skeletonData where s.TrackingState == SkeletonTrackingState.Tracked select s).FirstOrDefault();
...
if (playerSkeleton != null)
{
Joint head = playerSkeleton.Joints[JointType.Head];
float averagePlayerPosition = head.Z;
}
在上述方式中,我使用的頭部的深度來定義播放器的位置。
這是一個不錯的選擇,還是有更好的東西(例如幾個points of the skeleton的平均數)?如果我的選擇是可以改進的,是否有一些參考文獻能證明更好的選擇?
其他一些人已經談到了「Skeleton.Position」的含義,並且有人說它可能是「來自已識別用戶的大衆中心」......看到這個[link](http:// social。msdn.microsoft.com/Forums/en-US/kinectsdknuiapi/thread/ee12b17d-3606-4416-8924-12fa8e482421/) – 2013-04-10 15:09:41
這似乎適合;特別是因爲它可用於非活動骨架。我查看了一些以前的代碼,實際上當決定跟蹤哪個用戶時,我實際上會使用這個(我撒謊,對不起),當我想要「最親密」的人時。工作得很好。 – 2013-04-10 15:13:53