LightBuzz / Vitruvius

A set of easy-to-use Kinect utilities that will speed-up the development of your projects.
http://vitruviuskinect.com
Apache License 2.0
229 stars 82 forks source link

Add FlipHorizontally and FlipVertically to viewer control #16

Closed birbilis closed 8 years ago

birbilis commented 8 years ago

I added FlipHorizontally and FlipVertically to KinectViewer control at Kinect V1 solution (see outstanding pull request). You may want to copy that code to the v2 WPF and WinRT controls if they don't have such functionality

birbilis commented 8 years ago

the FlipVertically is mostly useful if using with a front facing projector that needs vertical flipping. Don't think it is useful when Kinect is placed on the ceiling upside down, haven't tried what Kinect does in that case with the skeleton calculations (see if the skeleton does show ok or if it needs to not be flipped itself and just flip the color and maybe the depth image too)

birbilis commented 8 years ago

now I flip both image and skeleton using a RenderTransform to the WPF control itself. In the case where Kinect is put on the ceiling upside down, if it shouldn't flip the skeleton one could put an extra ScaleTransform to undo the parent control's effect at the Canvas child on which the skeleton is drawn.

Kinect has accelerometer that maybe can tell you if it is upside down, I think I had read that they have that sensor for this reason (to detect and handle strange placements). Not sure if it handles such cases itself or you need to do it

Vangos commented 8 years ago

Thank you. We merged the pull request.

birbilis commented 8 years ago

is there a chance you can upload a new version for the Kinect v1 NuGet package? (or maybe even split the WPF and WinForms functionality to separate xx.WPF and xx.WinForms packages that depend on it in case somebody wants to make an app with no UI). I'm using the latest KinectV1 stuff that you've just pulled in at TrackingCam (http://TrackingCam.codeplex.com) and I have to put the vitruvius for kinect v1 DLLs in a Library subfolder instead using a NuGet package, which is cumbersome now that I've got used to NuGet