C++
示例列表
示例主要分为两类:相机 和 应用。 相机 类别中的示例侧重于如何使用相机。 应用 类别中的示例则侧重于使用相机生成的输出,例如3D点云、2D图像或来自相机的其它数据。这些示例展示了可以如何使用来自相机的数据。
相机
基础
Capture - 通过Zivid相机捕获包含颜色数据的点云。
Capture2D - 通过Zivid相机捕获2D图像。
CaptureAssistant - 使用捕获助手通过Zivid相机捕获带有颜色数据的点云。
CaptureFromFileCamera - 从Zivid文件相机捕获带有颜色数据的点云。目前支持Zivid One系列相机。
CaptureHDR - 通过Zivid相机捕获带有颜色数据的HDR点云。
CaptureHDRCompleteSettings - 通过Zivid相机使用完整配置设置捕获带有颜色数据的点云。
CaptureWithSettingsFromYML - 导入YML文件中的设置,从Zivid相机捕获带有颜色数据的点云。
高级
AllocateMemoryForPointCloudData - 使用OpenCV将点云数据从GPU内存复制到CPU内存的两种方法。
` Capture2D+3D <https://github.com/zivid/zivid-cpp-samples/tree/master//source/Camera/Advanced/Capture2D+3D/Capture2D+3D.cpp>`__ - 使用不同的捕获策略执行2D和3D的顺序捕获,这些捕获策略分别优化了2D数据质量和2D采集速度。
CaptureHalconViaGenICam - 使用GenICam接口和Halcon C++ SDK捕获并保存带有颜色数据的点云。
CaptureHalconViaZivid - 使用Zivid SDK捕获带有颜色数据的点云,将其转换为Halcon格式的点云并使用Halcon C++ SDK保存。
CaptureHDRLoop - 使用不同的采集设置覆盖场景中的相同动态范围,以优化图像质量、速度或折衷方案。
CaptureHDRPrintNormals - 捕获Zivid点云,计算法线并输出一个子集。
MultiCameraCaptureInParallel - 使用多个相机并行捕获点云。
MultiCameraCaptureSequentially - 使用多个相机顺序捕获点云。
InfoUtilOther
CameraUserData - 在Zivid相机上存储用户自定义数据。
CaptureWithDiagnostics - 从YML文件导入设置并启用诊断功能,从Zivid相机捕获带有颜色数据的点云。
FirmwareUpdater - 更新Zivid相机的固件。
FrameInfo - 从Zivid相机读取帧信息。
GetCameraIntrinsics - Read intrinsic parameters from the Zivid camera (OpenCV model) or estimate them from the point cloud.
PrintVersionInfo - 列出连接的相机并打印版本信息。
SettingsInfo - 从Zivid相机读取设置信息。
Warmup - 以指定时间和捕获周期预热相机的示例。
ZividBenchmark - Zividbenchmarks 是一个样本,将测试您计算机上不同操作的平均速度。它将提供
维护
CorrectCameraInField - 校正Zivid相机的尺寸真实度。
ResetCameraInField - 重置相机上的现场标定结果。
VerifyCameraInField - 检查Zivid相机的尺寸真实度。
应用
基础
可视化
CaptureFromFileCameraVis3D - 从虚拟的Zivid相机捕获带有颜色数据的点云,并将其可视化。目前仅支持Zivid One系列相机。
CaptureHDRVisNormals - 捕获Zivid彩色点云并计算法线,对其进行可视化获取3D法线图。
CaptureVis3D - 从Zivid相机捕获带有颜色数据的点云,并将其可视化。
CaptureWritePCLVis3D - 从Zivid相机捕获带有颜色数据的点云,将其保存为PCD文件格式,并将其可视化。
ReadPCLVis3D - 读取PCL格式的点云并将其可视化。
文件格式
ReadIterateZDF - 从ZDF文件中读取点云数据,对其进行迭代并提取单个的点。
高级
CaptureUndistortRGB - 使用相机内参捕获无失真的RGB图像。
CreateDepthMap - 从ZDF文件中读取点云数据,将其转换为OpenCV格式,提取深度图并将其可视化。
Downsample - 将从ZDF文件读取的点云进行降采样。
` GammaCorrection <https://github.com/zivid/zivid-cpp-samples/tree/master//source/Applications/Advanced/GammaCorrection/GammaCorrection.cpp>`__ - 使用Gamma校正捕获2D图像。
HandEyeCalibration - 执行手眼标定。
MaskPointCloud - 从ZDF文件中截取点云并转换为PCL格式,提取深度图并将其可视化。
ROIBoxViaArucoMarker - 根据相对于ArUco标记给出的ROI框过滤点云。
ROIBoxViaCheckerboard - 根据相对于Zivid标定板给出的ROI框过滤点云。
TransformPointCloudFromMillimetersToMeters - 将点云数据从毫米转换为米。
TransformPointCloudViaArucoMarker - 通过估计ArUco标记的位姿,将点云从相机坐标系转换到ArUco标记坐标系。
TransformPointCloudViaCheckerboard - 通过从API获取棋盘格位姿,将点云从相机坐标系转换到棋盘格(Zivid标定板)坐标系。
手眼标定
PoseConversions - 转换为转换矩阵(旋转矩阵 + 平移向量)/由转换矩阵转换而来。
UtilizeHandEyeCalibration - 使用手眼标定将单个数据点或整个点云从相机坐标系转换到机器人基坐标系。
多相机
MultiCameraCalibration - 通过捕获的标定对象图像,生成多个相机坐标系到一个独立坐标系的转换矩阵。
MultiCameraCalibrationFrom ZDF - 通过读取标定对象的ZDF文件,,生成多个相机坐标系到一个独立坐标系的转换矩阵。
StitchByTransformation - 使用多相机标定的变换矩阵将从相机获得的点云转换到单个坐标系。
StitchByTransformationFromZDF - 使用多相机标定的变换矩阵将从ZDF文件获得的点云转换到单个坐标系。
操作指南
Windows
点击键盘上的Win+R键启动命令提示符,然后输入 cmd
并 按 Enter 键。
导航到要克隆存储库的位置,然后运行以下命令:
git clone https://github.com/zivid/zivid-cpp-samples
使用CMake配置示例解决方案,在Visual Studio中打开示例,生成并运行。更多相关信息,更多相关信息,请参阅 使用 CMake 配置 C++ 示例并在 Windows 的 Visual Studio 中构建它们。
Ubuntu
点击键盘上的 Ctrl + Alt + T 键打开终端。
导航到要克隆存储库的位置,然后运行以下命令:
git clone https://github.com/zivid/zivid-cpp-samples
cd zivid-cpp-samples
构建项目:
mkdir build
cd build
cmake <options, see below> ../source
make -j
一些示例依赖于外部库,特别是Eigen 3、OpenCV、PCL或HALCON。如果您不想安装这些,您可以通过分别传递以下选项来根据它们禁用示例,以 cmake : -DUSE_EIGEN3=OFF
, -DUSE_OPENCV=OFF
, -DUSE_PCL=OFF
, -DUSE_HALCON=OFF
.
如果您确实想使用它们:
特征 3:设置
-DEIGEN3_INCLUDE_DIR=<path>
在哪里<path>
是Eigen3安装的根目录(包含 Eigen/Core、Eigen/Dense 等的文件夹)PCL 和 OpenCV:如果您的系统上安装了较新的版本,这些示例应该可以正常工作。如果没有,设置
-DPCL_DIR=<path>
/-DOpenCV_DIR=<path>
,<path>
分别是包含了PCLConfig.cmake
和OpenCVConfig.cmake
的目录 。HALCON:如果您的系统上安装了较新的版本,这些示例应该可以正常工作。
现在可以从构建的目录运行示例,例如:
./CaptureFromFileCameraVis3D