Ich entwickle eine Kinect-Gesten-Anwendung. Also habe ich einen Code vom Internet zur Handgeste bekommen.Wie misst man die Kinect Skeleton Axis Dimension?
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;
}
meine Zweifel sind:
- Was 0.05F ist? ist es in Meter? Zentimeter?
- Der Z-Achsenabstand ist der Abstand der Verbindung vom Kinect-Abstand. ist es ?
Dieser Code erkennt keine Hand. Irgendwelche Fehler oder Vorschläge?