PointCloud - TODO port to v3
The PointCloud node enables on-device point cloud generation from depth map.How to place it
Python
C++
Python
Python
1pipeline = dai.Pipeline()
2pointCloud = pipeline.create(dai.node.PointCloud)
Inputs and Outputs
Example visualization with Open3D
Python
C++
Python
Python
1import open3d as o3d
2import numpy as np
3import depthai as dai
4
5pcd = o3d.geometry.PointCloud()
6vis = o3d.visualization.VisualizerWithKeyCallback()
7vis.create_window()
8
9with dai.Device(pipeline) as device:
10 coordinateFrame = o3d.geometry.TriangleMesh.create_coordinate_frame(size=1000, origin=[0,0,0])
11 vis.add_geometry(coordinateFrame)
12
13 while device.isPipelineRunning():
14 inMessage = q.get()
15 inColor = inMessage["rgb"]
16 inPointCloud = inMessage["pcl"]
17 cvColorFrame = inColor.getCvFrame()
18
19 if inPointCloud:
20 points = inPointCloud.getPoints().astype(np.float64)
21 pcd.points = o3d.utility.Vector3dVector(points)
22 colors = (cvRGBFrame.reshape(-1, 3) / 255.0).astype(np.float64)
23 pcd.colors = o3d.utility.Vector3dVector(colors)
24 vis.update_geometry(pcd)
25
26 vis.poll_events()
27 vis.update_renderer()
28
29 vis.destroy_window()
Examples using PointCloud
Reference
Python
C++
Python
class
dai::node::PointCloud
variable
std::shared_ptr< PointCloudConfig > initialConfig
Initial config to use when computing the point cloud.
variable
Input inputConfig
Input PointCloudConfig message with ability to modify parameters in runtime. Default queue is non-blocking with size 4.
variable
Input inputDepth
Input message with depth data used to create the point cloud. Default queue is non-blocking with size 4.
variable
Output outputPointCloud
variable
Output passthroughDepth
Passthrough depth from which the point cloud was calculated. Suitable for when input queue is set to non-blocking behavior.
function
void setNumFramesPool(int numFramesPool)
Specify number of frames in pool.
Parameters
- numFramesPool: How many frames should the pool have
Need assistance?
Head over to Discussion Forum for technical support or any other questions you might have.