C# 中的 KINECT:将屏幕上的向前运动转换为向上运动

本文关键字:运动 中的 转换 KINECT 屏幕 | 更新日期: 2023-09-27 18:35:53

简而言之,我让 Kinect 拾取我的动作,并创建了一个漂亮的骨架,这样我就可以轻松看到我的前进/后退/左右运动。 我想将这些向前/向后/左右移动,并将其转换为屏幕上的上下或左右运动。换句话说,假设我的左脚从相机向前和向后移动,我想将其翻译为一个分别上下移动的点。有没有办法简单地从 YZ 平面转置到 XY 平面?我想在屏幕的不同部分显示向前和向上的动作

C# 中的 KINECT:将屏幕上的向前运动转换为向上运动

我希望我正确理解了你的问题。

如果你会研究一下playerSkeleton.Joints[JointType.Head]。位置(其中玩家骨架是从骨架框架中获得的骨架对象),您将看到关节的 X、Y 和 Z 坐标。您还可以执行以下操作:

DepthImagePoint jointDepthPoint = DepthFrame.MapFromSkeletonPoint(playerSkeleton.Joints[JointType.Head].Position);

然后你得到结果像素的值,结果是深度值。

休息只是数学...您只需缩放值。

假设您的深度值介于 128 和 256 之间,并且您希望以 (0, 0) 到 (480, 0) 间隔(如水平线)缩放该

new_value = (480 - 0) * your_value/(256 - 128)

所以你可以在 (new_value, 0) 上画你的点