点云捕获过程

备注

Zivid SDK 2.9的点云捕获过程发生了显着变化。如需查看早期SDK版本的流程,请更改左上角的知识库版本。

捕获(capture )API将在采集(acquisition )完成后返回。这是相机完成捕获原始图像的时刻。

跳转到源码

源码

const auto frame = camera.capture(settings);
跳转到源码

源码

using (var frame = camera.Capture(settings))
跳转到源码

源码

with camera.capture(settings) as frame:

获取点云的API会在点云处理完成之前或完成之时及时返回。这取决于GPU(供应商和驱动程序)。因此,点云API返回后,点云处理可能仍在后台运行。点云对象持有GPU内存中点云数据的句柄。

备注

获取点云的API不会触发点云处理,这是随同捕获API自动发生的。

小技巧

采用 推荐的硬件 以最小化计算时间。

跳转到源码

源码

const auto pointCloud = frame.pointCloud();
跳转到源码

源码

var pointCloud = frame.PointCloud;
跳转到源码

源码

point_cloud = frame.point_cloud()

小技巧

为了优化时间,您可以在捕获(capture )API返回后移动机器人或移动场景中的对象。这可以在调用API获取点云之前或同时发生。

我们需要调用API将点云从GPU内存复制到CPU内存。复制功能将阻塞并等到数据可用后再复制。当函数返回时,数据已经在CPU内存中并处于可使用的状态。

备注

即使使用带有集成GPU的CPU,数据也会被复制到同一主RAM上的不同区域。

跳转到源码

源码

const auto data = pointCloud.copyData<Zivid::PointXYZColorRGBA>();
跳转到源码

源码

var pointCloudData = pointCloud.CopyPointsXYZColorsRGBA();
跳转到源码

源码

xyz = point_cloud.copy_data("xyz")
rgba = point_cloud.copy_data("rgba")

当点云在CPU内存上可用时,我们即可在机器视觉应用程序中使用它。

性能注意事项

阅读 性能注意事项 以了解如何利用Zivid SDK优化您的应用以提高点云捕获过程的速度。内容包含:

版本历史

SDK

变更

2.9.0

捕获函数在采集完成后返回,提高了捕获速度。

2.8.0

提高了Zivid 2的捕获速度。