2D 图像捕获流程
2D 捕获 API 会在采集完成后返回。
从 Frame2D 对象获取图像的方法会在 2D 图像在 CPU 内存中可用后返回。此函数调用会造成阻塞,直到处理和复制过程完成。图像对象持有 CPU 内存中图像数据的句柄。
小技巧
使用 推荐的硬件 来最小化 2D 图像处理时间。
可以获取不同色彩空间的图像,例如 linear(线性) RGB( BGRA 和 RGBA )和 sRGB( SRGB )。更多相关信息,请参阅 2D 色彩空间、镜头畸变和输出格式 。
备注
在 C++ 和 C# 中,类 Image 继承自 Array2D ,此外还提供了一种以 PNG 文件格式保存图像的方法。
当图像在 CPU 内存中可用时,我们可以在机器视觉应用程序中使用它或将其保存到磁盘。
const auto imageFile = "ImageRGBA_sRGB.png";
std::cout << "Saving 2D color image (sRGB color space) to file: " << imageFile << std::endl;
imageSRGB.save(imageFile);
小技巧
为了优化时间,请在 2D 捕获 API 返回后移动机器人或移动场景中的对象。这必须在调用 API 从 Frame2D 对象获取图像之前或同时发生。
2D 帧可以保存到 .zdf 文件中,并在之后重新加载到内存中。这在启用 诊断(Diagnostics) 时尤为有用,可将原始帧数据分享给 Zivid 支持团队以进行更全面的故障排查。
保存的文件可以使用带有文件路径参数的 Frame2D 构造函数加载。
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.
const auto frameFileType2D = Zivid::readFrameFileType(dataFile2D);
std::cout << "Frame file type: " << (frameFileType2D == Zivid::FrameFileType::frame2D ? "Frame2D" : "Frame")
<< std::endl;
版本历史
SDK |
变更 |
|---|---|
2.18.0 |
Added support for saving and loading Frame2D to and from .zdf files, and |
2.12.0 |
Zivid 2+ 上的 2D 采集时间减少了高达 50%。 |
2.11.0 |
添加了对 SRGB 色彩空间的支持。 |
2.9.0 |
捕获(Capture)功能在采集完成后返回,提高了捕获速度。 |
2.8.0 |
提高了 Zivid 2 的捕获速度。 |