All Projects → KonstantinosAng → PyKinect2-PyQtGraph-PointClouds

KonstantinosAng / PyKinect2-PyQtGraph-PointClouds

Licence: MIT license
Creating real-time dynamic Point Clouds using PyQtGraph, Kinect 2 and the python library PyKinect2.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to PyKinect2-PyQtGraph-PointClouds

mix3d
Mix3D: Out-of-Context Data Augmentation for 3D Scenes (3DV 2021 Oral)
Stars: ✭ 183 (+335.71%)
Mutual labels:  point-cloud
pcl-edge-detection
Edge-detection application with PointCloud Library
Stars: ✭ 32 (-23.81%)
Mutual labels:  point-cloud
fastDesp-corrProp
Fast Descriptors and Correspondence Propagation for Robust Global Point Cloud Registration
Stars: ✭ 16 (-61.9%)
Mutual labels:  point-cloud
dunya-desktop
A modular, customizable and open-source desktop application for accessing and visualizing music data.
Stars: ✭ 76 (+80.95%)
Mutual labels:  pyqtgraph
Open3D-PointNet2-Semantic3D
Semantic3D segmentation with Open3D and PointNet++
Stars: ✭ 422 (+904.76%)
Mutual labels:  point-cloud
Python-for-Remote-Sensing
python codes for remote sensing applications will be uploaded here. I will try to teach everything I learn during my projects in here.
Stars: ✭ 20 (-52.38%)
Mutual labels:  point-cloud
awesome-point-cloud-deep-learning
Paper list of deep learning on point clouds.
Stars: ✭ 39 (-7.14%)
Mutual labels:  point-cloud
persee-depth-image-server
Stream openni2 depth images over the network
Stars: ✭ 21 (-50%)
Mutual labels:  point-cloud
CanSat-Ground-station
Code for a CanSat or OBCs GUI ground station where different sensor data are displayed in real time. No sensors needed to try it.
Stars: ✭ 55 (+30.95%)
Mutual labels:  pyqtgraph
zed-ros2-wrapper
ROS 2 wrapper beta for the ZED SDK
Stars: ✭ 61 (+45.24%)
Mutual labels:  point-cloud
YOHO
[ACM MM 2022] You Only Hypothesize Once: Point Cloud Registration with Rotation-equivariant Descriptors
Stars: ✭ 76 (+80.95%)
Mutual labels:  point-cloud
ECCV-2020-point-cloud-analysis
ECCV 2020 papers focusing on point cloud analysis
Stars: ✭ 22 (-47.62%)
Mutual labels:  point-cloud
FLAT
[ICCV2021 Oral] Fooling LiDAR by Attacking GPS Trajectory
Stars: ✭ 52 (+23.81%)
Mutual labels:  point-cloud
OpenDepthSensor
Open library to support Kinect V1 & V2 & Azure, RealSense and OpenNI-compatible sensors.
Stars: ✭ 61 (+45.24%)
Mutual labels:  kinect2
softpool
SoftPoolNet: Shape Descriptor for Point Cloud Completion and Classification - ECCV 2020 oral
Stars: ✭ 62 (+47.62%)
Mutual labels:  point-cloud
WS3D
Official version of 'Weakly Supervised 3D object detection from Lidar Point Cloud'(ECCV2020)
Stars: ✭ 104 (+147.62%)
Mutual labels:  point-cloud
DeepI2P
DeepI2P: Image-to-Point Cloud Registration via Deep Classification. CVPR 2021
Stars: ✭ 130 (+209.52%)
Mutual labels:  point-cloud
pcc geo cnn v2
Improved Deep Point Cloud Geometry Compression
Stars: ✭ 55 (+30.95%)
Mutual labels:  point-cloud
pyRANSAC-3D
A python tool for fitting primitives 3D shapes in point clouds using RANSAC algorithm
Stars: ✭ 253 (+502.38%)
Mutual labels:  point-cloud
CVPR-2020-point-cloud-analysis
CVPR 2020 papers focusing on point cloud analysis
Stars: ✭ 48 (+14.29%)
Mutual labels:  point-cloud

PyKinect2-PyQtGraph-PointClouds

Creating real-time dynamic Point Clouds using PyQtGraph, Kinect 2 and the python library PyKinect2.

Description

The PointCloud.py file contains the main class to produce dynamic Point Clouds using the PyKinect2 and the PyQtGraph libraries. The main file uses the numpy library that runs in C, thus it is fully optimized and can produce dynamic Point Clouds with up to 60+ frames, except for the point clouds produces by the RGB camera that run in 10+ frames. The library can also be used to create a PointCloud and save it as a .txt file containing the world point coordinates as: x, y, z . . . x, y, z It can also be used to view .ply or .pcd point cloud files or create PointClouds and save them as .ply or .pcd files. Instructions on how to use the main file are written in the Instructions chapter. In addition, there is a window with opencv track bars that can be used to dynamically change the color and the size of the points in the point cloud and the input flags.

Requirements

Install all requirements using the following command:

pip install requirement

Full list of all requirements.

* pyqtgraph==0.10.0
* numpy==1.18.2
* pykinect2==0.1.0
* opencv-python==4.2.0.34
* open3d-python==0.7.0.0
* time (already installed with Python3)
* sys (already installed with Python3)
* os (already installed with Python3)
* ctypes (already installed with Python3)

Another dependecy is the mapper file that I created and handles the ICoordanteMapper functions. Download the file and place it in the same directory as the PointCloud.py file. The main file is tested with Python 3.6.8.

Instructions

First import the main class as:

from PointCloud import Cloud

For viewing a point cloud text file with:
x, y, z
....
x, y, z
(world point coordinates)
If the file with the name does not exists it will create a point cloud with kinect and save it to that file.txt. It can also view .pcd and .ply files. I have uploaded some pointcloud files in the models/ directory for testing purposes.

# viewing a .txt file
pcl = Cloud(file='models/test_cloud_4.txt')
pcl.visualize()

# viewing .ply or .pcd files
# .pcd or .ply files open with the Open3D library
pcl = Cloud(file='models/model.pcd')

pcl = Cloud(file='models/Car.ply')

If the files doesn't exist then you have to specify from which sensor camera you want the pointcloud to be created and saved with that file name. The color point cloud is slower than the depth point cloud due to more points generated and written to the file.

# Creating a .txt PointCloud with the depth camera
pcl = Cloud(file='models/cloud_test_1.txt', depth=True)
pcl.visualize()

# Creating a .ply PointCloud with the depth camera
pcl = Cloud(file='models/cloud_test_1.ply', depth=True)

# Creating a .pcd PointCloud with the depth camera
pcl = Cloud(file='models/cloud_test_1.pcd', depth=True)

# Creating a .txt PointCloud with the color camera
pcl = Cloud(file='models/cloud_test_2.txt', color=True)
pcl.visualize()

# Creating a .ply PointCloud with the color camera
pcl = Cloud(file='models/cloud_test_3.ply', color=True)

# Creating a .pcd PointCloud with the color camera
pcl = Cloud(file='models/cloud_test_3.pcd', color=True)

For dynamically creating and viewing the PointCloud.

# rgb camera
pcl = Cloud(dynamic=True, color=True)
pcl.visualize()

# depth camera
pcl = Cloud(dynamic=True, depth=True)
pcl.visualize()

# body index
pcl = Cloud(dynamic=True, body=True)
pcl.visualize()

# skeleton cloud
pcl = Cloud(dynamic=True, skeleton=True)
pcl.visualize()

You can also visualize the clouds simultaneously in any order.

# example 1 with color and depth point clouds
pcl = Cloud(dynamic=True, simultaneously=True, color=True, depth=True, body=False, skeleton=False, color_overlay=False)
pcl.visualize()

# example 2 with all the point clouds enabled (scroll out to see the point cloud)
pcl = Cloud(dynamic=True, simultaneously=True, depth=True, color=True, body=True, skeleton=True, color_overlay=True)
pcl.visualize()

# example 3 with depth and body index point cloud
pcl = Cloud(dynamic=True, simultaneously=True, depth=True, color=False, body=True, skeleton=False, color_overlay=True)
pcl.visualize()

In addition, there is a window with trackbars to change the input flags, the color and point size of the cloud without closing the app.

Examples

Run the main file, to see the functionality, as:

python PointCloud.py

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].