私はkinectジェスチャアプリケーションを開発しています。だから私はインターネットからジェスチャーを手に入れるためのコードを手に入れました。
handupgesture()
{
bool up = false;
float refDistance = 0.2F;
SkeletonPoint refPos = localSkeletonHistory[0].Joints[JointType.ShoulderCenter].Position;
SkeletonPoint startPos = localSkeletonHistory[0].Joints[JointType.HandRight].Position;
for (int i = 20; i < localSkeletonHistory.Count; i++)
{
if (!(Math.Abs(localSkeletonHistory[i].Joints[JointType.ShoulderCenter].Position.Y - refPos.Y) < 0.05F &&
Math.Abs(localSkeletonHistory[i].Joints[JointType.HandRight].Position.X - startPos.X) < 0.05F &&
Math.Abs(localSkeletonHistory[i].Joints[JointType.HandRight].Position.Z - startPos.Z) < 0.05F ))
{
break;
}
if (localSkeletonHistory[i].Joints[JointType.HandRight].Position.Y >= (startPos.Y + refDistance))
{
up = true;
SkeletonHistory.Clear();
break;
}
}
return up;
}
私の疑問は次のとおりです。
- 0.05Fとは?それはメートルですか?センチメートル ?
- Z 軸距離は、kinect からの関節の距離を意味します。それは...ですか ?
このコードはハンドアップを検出していません。間違いや提案はありますか?