点云捕获过程
备注
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.12.0 |
使用低端 GPU,启用颜色的捕获时间减少了 10-20%。Zivid 2+ 上的 3D 采集时间减少了约 5%。 |
2.11.0 |
Zivid 2和2+现在支持3D➞2D和3D➞2D的并发处理和采集,并且优化了捕获模式之间的切换。 |
2.10.0 |
使用孔洞填充功能且禁用颜色时,捕获速度会得到提高。 |
2.9.0 |
捕获函数在采集完成后返回,提高了捕获速度。 |
2.8.0 |
提高了Zivid 2的捕获速度。 |