【问题标题】:Converting Skeletal Data to depth data in Kinect [duplicate]在 Kinect 中将骨骼数据转换为深度数据
【发布时间】:2012-09-23 11:13:21
【问题描述】:

可能重复:
Kinect: How to get the skeleton data from some depth data( geting from kinect but i modified some place)

由于骨架坐标空间与深度空间不同,我希望能够将骨架数据转换为深度图像数据,以便能够使用这些坐标为我的 3D 模型制作动画。 .我一直在看的教程真的很老而且没有帮助。我正在使用根本不涉及 NUI 编程的 Kinect v1.5。 .任何帮助将不胜感激......这是我到目前为止所得到的。 .

void newSensor_AllFramesReady(object sender, AllFramesReadyEventArgs e)
        {   
            using (SkeletonFrame skeletalFrame = e.OpenSkeletonFrame())
            using(ColorImageFrame colorFrame = e.OpenColorImageFrame())
            using(DepthImageFrame depthFrame = e.OpenDepthImageFrame())
            {
                if (skeletalFrame != null)
                {
                    Skeleton[] skeletonData = new Skeleton[skeletalFrame.SkeletonArrayLength];
                    skeletalFrame.CopySkeletonDataTo(skeletonData);

                    Skeleton playerSkeleton = (from s in skeletonData where s.TrackingState == SkeletonTrackingState.Tracked select s).FirstOrDefault();

                    if (playerSkeleton != null)
                    {
                        Joint rightHand = playerSkeleton.Joints[JointType.HandRight];
                        var rightHandX = rightHand.Position.X;
                        var rightHandY = rightHand.Position.Y;
                        var rightHandZ = rightHand.Position.Z

                        Console.SetOut(writer);
                        Console.SetOut(oldOut);
                        writer.WriteLine(rightHandX + "," + rightHandY + "," + rightHandZ);


                      //Pattern.Add(new Point(rightHandX, rightHandY));



                    }

                    if (colorFrame != null)
                    {
                        int stride = colorFrame.Width * 4;

                        pixels = new byte[colorFrame.Width*colorFrame.Height*4];
                        colorFrame.CopyPixelDataTo(pixels);
                    }


                }


                if (Keyboard.IsKeyDown(Key.Escape))
                {
                    Stopkinect(kinectSensorChooser1.Kinect);
                    Application.Current.Shutdown();
                }


               // Pattern_Coordinates();

               //  Print_Pattern();
            }
        }

【问题讨论】:

标签: kinect depth


【解决方案1】:

你会想看到Kinect: How to get the skeleton data from some depth data( geting from kinect but i modified some place),即使它是从深度数据中获取骨架数据,答案也显示了如何做相反的事情。

【讨论】:

  • 使用深度数据坐标还是骨架数据更好? . .我不太确定我是否应该只使用骨架数据
  • @Sweta 你应该使用骨骼数据
  • 如何根据骨骼数据的 Z 值对我的 3D 模型进行动画处理。 .因为它给出了以米为单位的距离
  • 它没有给出以米为单位的距离,请参阅stackoverflow.com/questions/8824743/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多