点云捕获过程

备注

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

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

跳转到源码

源码

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

源码

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

源码


frame = camera.capture_2d_3d(settings)

获取点云的 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_SRGB>();
跳转到源码

源码

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

源码

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

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

有关点云的更多信息,请参阅 点云教程 。

readFrameFileType returns whether a .zdf file contains a 3D Frame or a Frame2D. This is useful when a file path is given as input and the type is not known in advance.

跳转到源码

source

const auto frameFileType = Zivid::readFrameFileType(dataFile);
std::cout << "Frame file type: " << (frameFileType == Zivid::FrameFileType::frame ? "Frame" : "Frame2D")
          << std::endl;
跳转到源码

源码

var frameFileType = Zivid.NET.FrameFile.ReadFrameFileType(dataFile);
Console.WriteLine("Frame file type: " + frameFileType);
跳转到源码

源码

frame_file_type = zivid.read_frame_file_type(data_file)
print(f"Frame file type: {frame_file_type}")

性能注意事项

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

版本历史

SDK

变更

2.18.0

Added readFrameFileType to identify the frame type in a file.

2.16.0

添加了到 点云教程 链接,因为它提供了有关点云对象的更多详细信息。

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 的捕获速度。