{"id":34099797,"url":"https://github.com/nikwl/kinect-toolbox","last_synced_at":"2025-12-14T16:03:11.448Z","repository":{"id":47607163,"uuid":"244052926","full_name":"nikwl/kinect-toolbox","owner":"nikwl","description":"A Python wrapper for the kinect built on pylibfreenect2.","archived":false,"fork":false,"pushed_at":"2021-08-15T11:15:54.000Z","size":83,"stargazers_count":30,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-22T16:39:18.828Z","etag":null,"topics":["depth-camera","kinect","kinect-sensor","kinect-toolbox","kinect-v2","point-cloud","pylibfreenect2"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikwl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-29T22:49:41.000Z","updated_at":"2025-03-27T03:56:47.000Z","dependencies_parsed_at":"2022-08-29T15:20:37.523Z","dependency_job_id":null,"html_url":"https://github.com/nikwl/kinect-toolbox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nikwl/kinect-toolbox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikwl%2Fkinect-toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikwl%2Fkinect-toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikwl%2Fkinect-toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikwl%2Fkinect-toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikwl","download_url":"https://codeload.github.com/nikwl/kinect-toolbox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikwl%2Fkinect-toolbox/sbom","scorecard":{"id":687859,"data":{"date":"2025-08-11","repo":{"name":"github.com/nikwl/kinect-toolbox","commit":"78196afc745ec26b1bfe6200bce4bdcd44bf0077"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"10 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: GHSA-q799-q27x-vp7w","Warn: Project is vulnerable to: GHSA-qr4w-53vh-m672","Warn: Project is vulnerable to: PYSEC-2023-183"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-22T01:25:41.645Z","repository_id":47607163,"created_at":"2025-08-22T01:25:41.645Z","updated_at":"2025-08-22T01:25:41.645Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27730947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-14T02:00:11.348Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["depth-camera","kinect","kinect-sensor","kinect-toolbox","kinect-v2","point-cloud","pylibfreenect2"],"created_at":"2025-12-14T16:03:10.345Z","updated_at":"2025-12-14T16:03:11.441Z","avatar_url":"https://github.com/nikwl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kinect-toolbox\n## Overview\nThis is a set of helper functions to make using the Microsoft Kinect V2 with python easier. Libfreenect2 provides a robust interface for the kinect but it follows a more \"C++ like\" design paradigm. With this wrapper the kinect can be used more like a cv2 webcam. This package provides methods to get color, depth, registered color, registered depth, and ir images, record video, get point clouds (quickly), and makes the kinect interface all around more pythonic.\n\nCredit for point cloud acceleration methods goes to stackoverflow user [Logic1](https://stackoverflow.com/questions/41241236/vectorizing-the-kinect-real-world-coordinate-processing-algorithm-for-speed).\n\n## Installation\n1) [Install libfreenect2](https://github.com/OpenKinect/libfreenect2) \n2) Update your paths:\n    ```bash\n    export LIBFREENECT2_INSTALL_PREFIX=~/freenect2\n    export LD_LIBRARY_PATH=$HOME/freenect2/lib:$LD_LIBRARY_PATH\n    ```\n3) pip install:\n    ```bash\n    pip install ktb\n    ```\n\nThis package has been tested on Ubuntu 18.04 with python3.6.\n\n## Usage\n```python\nimport cv2\nimport ktb\n\nk = ktb.Kinect()\nwhile True:\n    # Specify as many types as you want here\n    color_frame = k.get_frame(ktb.COLOR)\n\n    cv2.imshow('frame', color_frame)\n    if cv2.waitKey(1) \u0026 0xFF == ord('q'):\n        break\n```\n\n## Methods\n#### `Kinect()`\nThe kinect class. Supports the following input arguments:\n* params_file: Kinect parameters file or dict. Parameters file can contain the kinect intrinsic parameters and a 3D transformation (which is applied to point clouds).\n* device_index: Use to interface with a specific device if more than one is connected. \n* headless: If true, will allow the kinect to collect and process data without a display. Connect the Kinect to a server and collect data remotely!\n* pipeline: Optionally pass a pylibfreenect2 pipeline that will be used with the kinect. Note that this will override the headless argument - Headless requires CUDA or OpenCL pipeline. Possible types are as follows:\n    * OpenGLPacketPipeline\n    * CpuPacketPipeline\n    * OpenCLPacketPipeline\n    * CudaPacketPipeline\n    * OpenCLKdePacketPipeline\n\n#### `Kinect.get_frame()`\nGet a video frame from the kinect. Optionally specify a list of image types and the function will return a corresponding list of images. Available types are:\n\n| Frame Type | Description |\n|-|-|\n| RAW_COLOR | returns a 1920 x 1080 color image |\n| RAW_DEPTH | returns a 512 x 424 depth image (units are mm) |\n| COLOR     | returns a 512 x 424 color image, registered to depth image |\n| DEPTH     | returns a 512 x 424 undistorted depth, image (units are mm) |\n| IR        | returns a 512 x 424 ir image |\n\nNote that depth images have units in millimeters. To display them in a window without clipping first rescale the values:\n```python\nframe = frame / 4500.\n```\n\n#### `Kinect.record()`\nRecords a video from the kinect. Halts execution and opens a cv2 window displaying a stream from the kinect while writing the stream to disk. Optionally specify any of the above frame types to record that specific stream.\n\n#### `Kinect.get_ptcld()`\nGet a point cloud from the kinect. Returns an point cloud of size [512, 424, 3], corresponding a grid of xyz points. Optionally return a color map derived from the registered color image.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikwl%2Fkinect-toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikwl%2Fkinect-toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikwl%2Fkinect-toolbox/lists"}