我使用的是OpenNI的HandsGenerator類,我想用它來跟蹤用戶的移動。OpenNI返回的座標範圍
我已經註冊了自己的回調函數來獲取手的更新位置,並且一切都正常,除非我找不到有關返回的XnPoint3D
的座標系等的信息。是否有一個規範精確地指定了X,Y,Z範圍,以及可能的縮放比例信息(以便我知道在XnPoint3D
的X
中對應於10釐米的移動或某物的變化爲100)。
我使用的是OpenNI的HandsGenerator類,我想用它來跟蹤用戶的移動。OpenNI返回的座標範圍
我已經註冊了自己的回調函數來獲取手的更新位置,並且一切都正常,除非我找不到有關返回的XnPoint3D
的座標系等的信息。是否有一個規範精確地指定了X,Y,Z範圍,以及可能的縮放比例信息(以便我知道在XnPoint3D
的X
中對應於10釐米的移動或某物的變化爲100)。
HandsGenerator以毫米爲單位從傳感器返回真實世界座標。這意味着在深度圖的正中間的深度點將具有X和Y的0。
100(在X,Y或Z中)的變化確實是10釐米的變化(100mm = 10釐米)。
X和Y值的範圍取決於手點的Z值。假設你在深度圖的左上方有一個手形點(或者在投影座標中爲0,0),可能的X和Y值取決於手的距離。手越近,X和Y越小。要獲得手部位置的最大範圍,您應該選擇任意的最大Z值,然後在該距離處查找深度圖角點的Y值。換句話說 - 將投影座標(0,0,maxZ)和(DepthmapWidth,DepthmapHeight,maxZ)轉換爲真實世界座標。所有具有小於maxZ的Z值的手點將落在這兩個真實世界座標之間)
請注意,您可以使用DepthGenerator :: ConvertProjectiveToRealWorld將投影座標轉換爲真實世界。
謝謝。所以基本上它報告的座標以毫米爲單位。有沒有這樣的信息的地方,所以我不必每次都問問? – houbysoft
http://openni.org/Documentation/ –
我沒有找到任何關於比例尺的信息(即X,Y,Z變化爲100釐米)...... – houbysoft