Kinect Viewer

Kinect Viewer Pc

• • See also: Most current on github. Introduction This article is the follow-up of my on grabbing a point cloud using the Microsoft Kinect v2. Main features: • grab a point cloud using the Kinect v2 scanner or the Intel Realsense F200 scanner • real time display of the point cloud in a OpenGL control • possibility to adjust scanning parameters like maximum depth, scanned point cloud as obj file save For the details of the OpenGL implementation, please read this.

Download this app from Microsoft Store for Windows 10, Windows 10 Mobile. See screenshots, read the latest customer reviews, and compare ratings for Viewer for Baby Monitor for Kinect (Xbox One App). When I get to the part where Raw Kinect Viewer opens in step 6 (of complete installation directions) it opens fine and shows the depth and color images side by side. Dell Wifi Afterburner. The problem I have is when I grab the depth image using the mouse, it will only rotate on the cross hair pivot point, it won't drag to the middle.

Kinect Camera Viewer

It uses the library as C# interface for OpenGL. Prerequistes • Microsoft Kinect SDK v2 •.NET 4.6 • Visual Studio 2015 or higher (for the source code) Quick Start A short how for the main program: • Start the program PointCloudScanner.exe • Click on „Start Scan“ • Click on „Save Point Cloud“ to save and stop scanning Motivation Why not using the Kinect SDK samples Since some time, but in fact after I published this article, the Kinect SDK samples include the Kinect Studio Explorer, which allows a live viewing of the point cloud in 3D. Before that, only 2D images of the Depth, color, body and infrared frames were possible. However, the Kinect Studio Explorer is available only as executable file and not as source code, so you cannot use this in your own project, This available source code allows viewing in 3D as well as some additional features in comparison to the Kinecet Explorer, like cutting the grabbed data etc. Why OpenGL First you may ask: Why not use a WPF window for displaying point clouds, but the OpenGL control I used?

Well, in WPF you cannot display simple point clouds. You can only display surfaces (or areas, triangles). So you would have to first program a triangulation – which is not an easy task. And I have to admit: I dislike WPF. The main reasons why WPF has been introduced is: • Separation between UI and logics – which in principle should allow a designer to use Blender for designing the UI, and a programmer to use Visual Studio for coding. • Support for graphics/animation and desktop programs There are other reasons like data binding, ability to run in a browser, etc.

Which I consider to be only not so relevant reasons. Now the main reasons why I dislike WPF is related to the above points: • Changing the UI is VERY time consuming – e.g. Why should I use two tools for a simple change in the UI??

How To Install Daloradius On Windows. Code change in the WPF is very tedious. Try to open a simple WPF control in Visual Studio – it takes more than 5 s for displaying. The Message box appearing which says, I could do other tasks during this time is a kind of joke.

What other task should I do - I just want to change the code now! Then you have to search for your control, found out which is the code handler for an event, then search in your code for this method. About 4 steps to do. With Windows Forms this was a double – click. • The support for graphics within WPF is poor and slow.

A Point Cloud cannot be displayed in WPF. Displaying large data is slow. Besides that, the OpenGL community is large, and there are several code tips and libraries which help development. Code If you follow the process of scanning starting from clicking on the button to displaying the data in the 3D control, it goes 1. ScannerUC.StartScanning() We use the Kinect camera, this calls the method 2.

KinectBO.StartScanner() The KinectBO class encapsulates everything done by Kinect, like frame capturing, data conversions to 3D etc. The StartScanner method sets delegates for receiving the data from the scanner and sets the output to display the data on the user control 3. KinectBO.Scanner_MultiSourceFrameArrived() is called on every frame from the scanner. For displaying the 3D data, the method called is 4.

KinectBO.ProcessDepthFrame() and from here, the method: 5. KinectBO.UpdateOpenGLControl() Here, the frame data is converted to a point cloud in the method: 6.

KinectBO.ToPointCloudRenderable(false); This is done in the line: 7. MetaDataBase.ToPointCloudVertices(this.ColorMetaData, this.DepthMetaData, this.coordinateMapper); The depth frame data and the color frme data are mapped to world points by myCoordinateMapper.MapDepthFrameToCameraSpace(myDepthMetaData.FrameData, myRealWorldPoints); myCoordinateMapper.MapDepthFrameToColorSpace(myDepthMetaData.FrameData, mycolorPointsInDepthSpace); After that, the point cloud is created by taking the depth frame and getting color data for each pixel in the method: 8. MetaDataBasePointCloudVerticesWithColorParallel() th Here I use parallelisation, otherwise the performance is very low, and an update of the UI is done about once per second or slower. By using parallisation, the performance is up to 10 frames/s.