2D Image Capture Process
The 2D capture API returns when the acquisition is done.
The method to get the image from the Frame2D object returns after the 2D image is available in CPU memory. This function call blocks until processing and copying are finished. The image object holds a handle to the image data in CPU memory.
Tip
Use recommended hardware to minimize 2D image processing time.
It is possible to get the image in different color spaces, as linear RGB (BGRA and RGBA) and sRGB (SRGB).
For more information, see 2D Color Spaces, Lens Distortion, and Output Formats.
Note
In C++ and C#, class Image inherits from Array2D and provides, in addition, a method to save the image in PNG file format.
When the image is available on the CPU memory, we can utilize it in our machine vision application or save it to disk.
const auto imageFile = "ImageRGBA_sRGB.png";
std::cout << "Saving 2D color image (sRGB color space) to file: " << imageFile << std::endl;
imageSRGB.save(imageFile);
Tip
For optimized timing, move the robot or move the objects in the scene after the 2D capture API returns. This has to happen before or at the same time when calling the API to get the image from the Frame2D object.
A 2D frame can be saved to a .zdf file and later loaded back into memory. This is primarily useful when diagnostics are enabled, to share the raw frame data with Zivid support for more thorough troubleshooting.
const auto dataFile2D = "Frame2D.zdf";
std::cout << "Saving 2D frame to file: " << dataFile2D << std::endl;
frame2D.save(dataFile2D);
The saved file can be loaded using the Frame2D constructor that takes a file path.
std::cout << "Loading 2D frame from file: " << dataFile2D << std::endl;
const auto loadedFrame2D = Zivid::Frame2D{ dataFile2D };
The readFrameFileType function 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;
Version History
SDK |
Changes |
|---|---|
2.18.0 |
Added support for saving and loading Frame2D to and from .zdf files, and |
2.12.0 |
2D acquisition time on Zivid 2+ is reduced by up to 50%. |
2.11.0 |
Added support for SRGB color space. |
2.9.0 |
Capture function returns when the acquisition is done and improved capture speed. |
2.8.0 |
Improved capture speed of Zivid 2. |