I’m testing some ways of drawing using a 2D canvas with some effects.
I added functionality for the program to save positions to a file, X and Y as pixel positions and Z as depth. Each joint is labeled (H: Head, WL: Wrist Left, and so on), and flagged as tracked or inferred. The screenshot is of a skeleton in “sitting position”, hence no joints below the spine.
Working on a Python script to read the file and output another with the positions averaged out, in order to reduce noise.
public void Export(Uri path, Canvas surface)
if (path == null) return;
// Save current canvas transform
Transform transform = surface.LayoutTransform;
// reset current transform (in case it is scaled or rotated)
surface.LayoutTransform = null;
// Get the size of canvas
Size size = new Size(surface.Width, surface.Height);
// Measure and arrange the surface
// VERY IMPORTANT
// Create a render bitmap and push the surface to it
RenderTargetBitmap renderBitmap =
Example of usage from the C#-library: RenderTargetBitmap