当前位置:编程学习 > C#/ASP.NET >>

求kinect大神帮忙。求一段C#代码,有偿也可以。。。。

求一段在kinect前面用右手画图的代码。也就是追踪右手节点轨迹的代码。、、 --------------------编程问答-------------------- 留下联系方式,这个蛮简单的。 --------------------编程问答--------------------
Skeleton[] skeletons = new Skeleton[0];

            using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
            {
                if (skeletonFrame != null)
                {
                    skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
                    skeletonFrame.CopySkeletonDataTo(skeletons);
                }
            }

            using (DrawingContext dc = this.drawingGroup.Open())
            {
                dc.DrawRectangle(Brushes.Black, null, new Rect(0.0, 0.0, RenderWidth, RenderHeight));

                if (skeletons.Length != 0)
                {
                    foreach (Skeleton skel in skeletons)
                    {
                        RenderClippedEdges(skel, dc);

                        if (skel.TrackingState == SkeletonTrackingState.Tracked)
                        {
                            foreach (Joint joint in skel.Joints)
                            {
                                if (joint.JointType == JointType.HandRight)
                                {
                                     Brush drawBrush = null;
                                    if (joint.TrackingState == JointTrackingState.Tracked)
                                    {
                                        drawBrush = this.trackedJointBrush;
                                    }
                                    else if (joint.TrackingState == JointTrackingState.Inferred)
                                    {
                                        drawBrush = this.inferredJointBrush;
                                    }

                                    if (drawBrush != null)
                                    {
                                        dc.DrawEllipse(drawBrush, null, this.SkeletonPointToScreen(joint.Position), JointThickness, JointThickness);
                                    }
                                }
                            }
                        }
                        else if (skel.TrackingState == SkeletonTrackingState.PositionOnly)
                        {
                            dc.DrawEllipse(
                            this.centerPointBrush,
                            null,
                            this.SkeletonPointToScreen(skel.Position),
                            BodyCenterThickness,
                            BodyCenterThickness);
                        }
                    }
                }

                // prevent drawing outside of our render area
                this.drawingGroup.ClipGeometry = new RectangleGeometry(new Rect(0.0, 0.0, RenderWidth, RenderHeight));
            }





 private Point SkeletonPointToScreen(SkeletonPoint skelpoint)
        {
            DepthImagePoint depthPoint = this.sensor.CoordinateMapper.MapSkeletonPointToDepthPoint(skelpoint, DepthImageFormat.Resolution640x480Fps30);
            return new Point(depthPoint.X, depthPoint.Y);
        }
--------------------编程问答--------------------
 private void WindowLoaded(object sender, RoutedEventArgs e)
        {
            this.drawingGroup = new DrawingGroup();
            this.imageSource = new DrawingImage(this.drawingGroup);
            Image.Source = this.imageSource;
            foreach (var potentialSensor in KinectSensor.KinectSensors)
            {
                if (potentialSensor.Status == KinectStatus.Connected)
                {
                    this.sensor = potentialSensor;
                    break;
                }
            }

            if (null != this.sensor)
            {
                this.sensor.SkeletonStream.Enable();
                this.sensor.SkeletonFrameReady += this.SensorSkeletonFrameReady;
                try
                {
                    this.sensor.Start();
                }
                catch (IOException)
                {
                    this.sensor = null;
                }
            }
        }

private void SensorSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{

}

把第一段代码放到SensorSkeletonFrameReady里就好了,这样你的右手节点就出来了,剩下的轨迹自己去写。这个是官方的demo,一改就OK了啊,刚开始多看看官方例子,看懂了一个剩下的自己去写算法就是了。我也是初学,共同进步。 --------------------编程问答-------------------- 我想在color basic和这个上面改的。可是我想在colorbasic 那个里面画图就画不出来。。。有空加我QQ:150927210 一起交流哈。。。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,