void Reader_MultiSourceFrameArrived(object sender, MultiSourceFrameArrivedEventArgs e) { var reference = e.FrameReference.AcquireFrame(); // Color using (var frame = reference.ColorFrameReference.AcquireFrame()) { if (frame != null) { if (_mode == CameraMode.Color) { camera.Source = frame.ToBitmap(); } } } var col_frame = reference.ColorFrameReference.AcquireFrame(); CameraSpacePoint[] camerapoints = null; FrameDescription colorFrameDes = col_frame.FrameDescription; int colorWidth = colorFrameDes.Width; int colorHeight = colorFrameDes.Height; camerapoints = new CameraSpacePoint[colorWidth * colorHeight]; // Depth using (var frame = reference.DepthFrameReference.AcquireFrame()) { if (frame != null) { if (_mode == CameraMode.Depth) { Console.Write("In the depth control."); //camera.Source = frame.ToBitmap(); FrameDescription depth_des = frame.FrameDescription; int depth_height = depth_des.Height; int depth_Width = depth_des.Width; UInt16[] depthdata = new UInt16[depth_Width * depth_height]; frame.CopyFrameDataToArray(depthdata); for (int i = 1; i <= 100;i++ ) { Console.Write(depthdata[i]); Console.Write("\n"); } _sensor.CoordinateMapper.MapColorFrameToCameraSpace(depthdata, camerapoints); CameraSpacePoint testpoint = new CameraSpacePoint(); testpoint = camerapoints.ElementAt(3); Console.WriteLine(testpoint.X); //Console.Write(abc); } } } // Body using (var frame = reference.BodyFrameReference.AcquireFrame()) { if (frame != null) { canvas.Children.Clear(); _bodies = new Body[frame.BodyFrameSource.BodyCount]; frame.GetAndRefreshBodyData(_bodies); foreach (var body in _bodies) { if (body.IsTracked) { // COORDINATE MAPPING foreach (Joint joint in body.Joints.Values) { if (joint.TrackingState == TrackingState.Tracked) { // 3D space point CameraSpacePoint jointPosition = joint.Position; // 2D space point Point point = new Point(); if (_mode == CameraMode.Color) { ColorSpacePoint colorPoint = _sensor.CoordinateMapper.MapCameraPointToColorSpace(jointPosition); point.X = float.IsInfinity(colorPoint.X) ? 0 : colorPoint.X; point.Y = float.IsInfinity(colorPoint.Y) ? 0 : colorPoint.Y; } else if (_mode == CameraMode.Depth || _mode == CameraMode.Infrared) // Change the Image and Canvas dimensions to 512x424 { DepthSpacePoint depthPoint = _sensor.CoordinateMapper.MapCameraPointToDepthSpace(jointPosition); point.X = float.IsInfinity(depthPoint.X) ? 0 : depthPoint.X; point.Y = float.IsInfinity(depthPoint.Y) ? 0 : depthPoint.Y; } // Draw Ellipse ellipse = new Ellipse { Fill = Brushes.Red, Width = 30, Height = 30 }; Canvas.SetLeft(ellipse, point.X - ellipse.Width / 2); Canvas.SetTop(ellipse, point.Y - ellipse.Height / 2); canvas.Children.Add(ellipse); } } } } } } }