Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/prisonerjohn/ofxAzureKinect
An openFrameworks addon for the Azure Kinect.
https://github.com/prisonerjohn/ofxAzureKinect
Last synced: 7 days ago
JSON representation
An openFrameworks addon for the Azure Kinect.
- Host: GitHub
- URL: https://github.com/prisonerjohn/ofxAzureKinect
- Owner: prisonerjohn
- License: mit
- Created: 2019-07-21T15:19:43.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-12-05T01:50:30.000Z (11 months ago)
- Last Synced: 2024-08-02T17:34:01.850Z (3 months ago)
- Language: C++
- Homepage:
- Size: 934 KB
- Stars: 72
- Watchers: 8
- Forks: 24
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ofxAzureKinect
ofxAddon that allows you to use [Azure Kinect](https://azure.microsoft.com/en-us/services/kinect-dk/) in [openFrameworks](https://github.com/openframeworks/openFrameworks).
* Get depth, color, depth to world, and color in depth frames as `ofPixels` or `ofTexture`.
* Get point cloud VBO with texture coordinates in depth space.
* Get body tracking skeleton and index texture.
* Use multiple sensors per machine (tested up to 4!)
* Set up sync mode (standalone, master, subordinate) with multiple devices when connected with sync cables.
* Record and playback streams.
* More coming soon...## Installation
The instructions below are based on the [Azure Kinect Sensor SDK Usage](https://github.com/microsoft/Azure-Kinect-Sensor-SDK/blob/develop/docs/usage.md) page.
### Windows
* Install the [Azure Kinect Sensor SDK](https://docs.microsoft.com/en-us/azure/Kinect-dk/sensor-sdk-download).
* Install the [Azure Kinect Body Tracking SDK](https://docs.microsoft.com/en-us/azure/Kinect-dk/body-sdk-download).
* Add an environment variable for `AZUREKINECT_SDK` and set it to the Sensor SDK installation path (no trailing slash). The default is `C:\Program Files\Azure Kinect SDK v1.4.1`.
* Add an environment variable for `AZUREKINECT_BODY_SDK` and set it to the Body SDK installation path (no trailing slash). The default is `C:\Program Files\Azure Kinect Body Tracking SDK`.![Environment Variables](Install-EnvVars.png)
* Add the path to the Sensor SDK `bin` folder to the `PATH` variable. The default is `%AZUREKINECT_SDK%\sdk\windows-desktop\amd64\release\bin`.
* Add the path to the Body SDK `bin` folder to the `PATH` variable. The default is `%AZUREKINECT_BODY_SDK%\sdk\windows-desktop\amd64\release\bin`.
* Add the path to the Body SDK `tools` folder to the `PATH` variable. The default is `%AZUREKINECT_BODY_SDK%\tools`.![Path](Install-Path.png)
* Clone this repository in your openFrameworks `addons` folder.
* You can then use the OF Project Generator to generate projects with the appropriate headers and libraries included. ✌️
* Note that if you want to use body tracking, you will need to copy the cuDNN model file `dnn_model_2_0.onnx` from the Body SDK `tools` folder into your project's `bin` folder!### Linux
* Configure the [Linux Software Repository for Microsoft](https://docs.microsoft.com/en-us/windows-server/administration/linux-package-repository-for-microsoft-software). Note that for Ubuntu you'll need to set up the repo for 18.04 even if you're running newer versions.
* Install the Azure Kinect Sensor SDK packages: `libk4a1.3` `libk4a1.3-dev` `k4a-tools`
* Install the Azure Kinect Body Tracking SDK packages: `libk4abt1.0` `libk4abt1.0-dev`
* Setup udev rules by copying [this file](https://github.com/microsoft/Azure-Kinect-Sensor-SDK/blob/develop/scripts/99-k4a.rules) to `/etc/udev/rules.d/99-k4a.rules`.
* Install [libjpeg-turbo](https://sourceforge.net/projects/libjpeg-turbo/).
* Clone this repository in your openFrameworks `addons` folder.
* You can then use the OF Project Generator to generate projects with the appropriate headers and libraries included.
🐣## Compatibility
Tested with:
* openFrameworks 0.10.x / 0.11.x
* Windows 10, Visual Studio 2017 / 2019
* Ubuntu 19.10, Qt Creator## Examples
Use the OF Project Generator to create the example project files. If everything is installed correctly, it should properly locate all required include and library files.
* `example-streams` demonstrates how to get depth, color, infrared textures from the device.
* `example-scaled-depth` demonstrates how to remap the depth data to a narrower (probably more useful) range.
* `example-pointCloud` demonstrates how to draw the basic point cloud VBO from the device.
* `example-world-coord` demonstrates how to get the world coordinate from the depth and depth to world data sets.
* `example-shader` demonstrates how to reconstruct a point cloud using LUTs in a shader.
* `example-bodies` demonstrates how to get the body tracking index texture and skeleton joint information in 3D.
* `example-bodies-projected` demonstrates how to get the body tracking index texture and skeleton joint information in 2D.
* `example-multi` demonstrates how to use multiple devices in a single app.
* `example-record` demonstrates how to record and playback device streams.