示例
直接使用您喜欢的编程语言对Zivid相机进行编程。
备注
一些Zivid示例需要使用到 Sample Data(示例数据)。
示例列表
相机
基础
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文件获得的点云转换到单个坐标系。
相机
基础
Capture - 从 Zivid 相机捕获带有颜色数据的点云。
Capture2D - 通过Zivid相机捕获2D图像。
CaptureAssistant - 使用捕获助手通过Zivid相机捕获带有颜色数据的点云。
CaptureFromFileCamera - 从Zivid文件相机捕获带有颜色数据的点云。
CaptureHDR - 通过Zivid相机捕获带有颜色数据的HDR点云。
CaptureHDRCompleteSettings - 通过Zivid相机使用完整配置设置捕获带有颜色数据的点云。
CaptureWithSettingsFromYML - 导入YML文件中的设置,从Zivid相机捕获带有颜色数据的点云。
高级
CaptureHalconViaGenICam - 使用GenICam接口和Halcon C++ SDK捕获并保存带有颜色数据的点云。
CaptureHalconViaZivid - 使用Zivid SDK捕获带有颜色数据的点云,将其转换为Halcon格式的点云并使用Halcon C++ SDK保存。
CaptureHDRLoop - 使用不同的采集设置覆盖场景中的相同动态范围,以优化图像质量、速度或折衷方案。
CaptureHDRPrintNormals - 捕获Zivid点云,计算法线并输出一个子集。
InfoUtilOther
CameraUserData - 在Zivid相机上存储用户自定义数据。
CaptureWithDiagnostics - 从YML文件导入设置并启用诊断功能,从Zivid相机捕获带有颜色数据的点云。
FirmwareUpdater - 更新Zivid相机上的固件。
GetCameraIntrinsics - Read intrinsic parameters from the Zivid camera (OpenCV model) or estimate them from the point cloud.
PrintVersionInfo - 列出连接的相机并打印版本信息。
Warmup - 以指定时间和捕获周期预热相机的示例。
应用
基础
可视化
CaptureFromFileCameraVis3D - 从Zivid文件相机捕获带颜色的点云,并将其可视化。
CaptureVis3D - 从Zivid相机捕获带有颜色数据的点云,并将其可视化。
文件格式
ReadIterateZDF -从ZDF文件中读取点云数据,对其进行迭代并提取单个的点。
ZDF2PLY - 将点云从ZDF格式转换为PLY格式。
高级
Downsample - 将从ZDF文件读取的点云进行降采样。
HandEyeCalibration - 执行手眼标定。
MultiCameraCalibration - 通过捕获的标定对象图像,生成多个相机坐标系到一个独立坐标系的转换矩阵。
TransformPointCloudFromMillimetersToMeters - 将点云数据从毫米转换为米。
TransformPointCloudViaCheckerboard - 通过从API获取棋盘格位姿,将点云从相机坐标系转换到棋盘格(Zivid标定板)坐标系。
手眼标定
` PoseConversions <https://github.com/zivid/zivid-csharp-samples/tree/master//source/Applications/Advanced/HandEyeCalibration/PoseConversions/PoseConversions.cs>`__ - 转换为转换矩阵(旋转矩阵 + 平移向量)/由转换矩阵转换而来。
UtilizeHandEyeCalibration - 使用手眼标定将单个数据点或整个点云从相机坐标系转换到机器人基坐标系。
相机
基础
capture - 通过Zivid相机捕获包含颜色数据的点云。
capture_2d - 通过Zivid相机捕获2D图像。
capture_2d_with_settings_from_yml - 使用YML文件中的设置来通过Zivid相机捕获2D图像。
capture_assistant - 使用捕获助手通过Zivid相机捕获带有颜色数据的点云。
capture_from_file_camera -从Zivid文件相机捕获带有颜色数据的点云。
capture_hdr - 通过Zivid相机捕获带有颜色数据的HDR点云。
capture_hdr_complete_settings - 通过Zivid相机使用完整配置设置捕获带有颜色数据的点云。
capture_with_settings_from_yml - 导入YML文件中的设置,从Zivid相机捕获带有颜色数据的点云。
高级
capture_hdr_loop - 使用不同的采集设置覆盖场景中的相同动态范围,以优化图像质量、速度或折衷方案。
capture_hdr_print_normals - 捕获Zivid点云,计算法线并输出一个子集。
info_util_other
camera_user_data - 在Zivid相机上存储用户数据。
capture_with_diagnostics - 从YML文件导入设置并启用诊断功能,从Zivid相机捕获带有颜色数据的点云。
firmware_updater - 更新Zivid相机上的固件。
get_camera_intrinsics - Read intrinsic parameters from the Zivid camera (OpenCV model) or estimate them from the point cloud.
print_version_info - 打印 Python、zivid-python和Zivid SDK的版本信息,然后列出所有连接的相机并打印其信息。
warmup - 以指定时间和捕获周期预热相机的示例。
维护
correct_camera_in_field - 校正Zivid相机的尺寸真实度。
reset_camera_in_field - 重置相机上的现场标定结果。
verify_camera_in_field - 检查Zivid相机的尺寸真实度。
应用
基础
可视化
capture_hdr_vis_normals - 捕获Zivid彩色点云,计算法线,转换为彩色图像并可视化。
capture_vis_3d - 从Zivid相机捕获带有颜色数据的点云,并将其可视化。
read_zdf_vis_3d - 从ZDF文件中读取点云数据并将其可视化。
文件格式
convert_zdf - 将点云数据从ZDF格式转换为您的首选格式(PLY、CSV、TXT、PNG、JPG、BMP、TIFF)。
read_iterate_zdf - 从ZDF文件中读取点云数据,对其进行迭代并提取单个的点。
高级
` auto_2d_settings <https://github.com/zivid/zivid-python-samples/tree/master//source/applications/advanced/auto_2d_settings.py>`__ - 使用Zivid标定板自动查找适用于2D捕获的的2D设置。
` color_balance <https://github.com/zivid/zivid-python-samples/tree/master//source/applications/advanced/color_balance.py>`__ - 使用Zivid标定板平衡2D图像的颜色。
create_depth_map - 从ZDF文件中读取点云数据,将其转换为OpenCV格式,提取深度图并将其可视化。
downsample - 将从ZDF文件读取的点云进行降采样。
gamma_correction - 使用gamma校正捕获2D图像。
get_checkerboard_pose_from_zdf - 从ZDF文件读取Zivid标定板的点云数据并估计其位姿
hand_eye_calibration - 执行手眼标定。
mask_point_cloud - 从ZDF文件中截取点云并转换为PCL格式,提取深度图并将其可视化。
roi_box_via_checkerboard - 根据相对于Zivid标定板给出的ROI框过滤点云。
手眼标定
pose_conversions - 转换为转换矩阵(旋转矩阵 + 平移向量)/由转换矩阵转换而来。
robodk_hand_eye_calibration - 使用Robodk界面生成数据集并执行手眼标定。
utilize_hand_eye_calibration - 使用手眼标定将单个数据点或整个点云从相机坐标系转换到机器人基坐标系。
verify_hand_eye_with_visualization - 通过转换所有数据集点云并可视化来验证手眼标定。
使用UR机器人进行手眼标定
Universal_robots_perform_hand_eye_calibration - 使用Universal Robot UR5e机器人生成数据集并执行手眼标定的脚本。
sample_utils
` calibration_board_utils <https://github.com/zivid/zivid-python-samples/tree/master//source/sample_utils/calibration_board_utils.py>`__ - 适用于Zivid标定板的实用功能(Utility functions)。
display - 显示Zivid示例的相关数据。
paths - 获取Zivid示例的相关路径。
` robodk_tools <https://github.com/zivid/zivid-python-samples/tree/master//source/sample_utils/robodk_tools.py>`__ - 机器人控制模块
` save_load_matrix <https://github.com/zivid/zivid-python-samples/tree/master//source/sample_utils/save_load_matrix.py>`__ - 尝试:
` white_balance_calibration <https://github.com/zivid/zivid-python-samples/tree/master//source/sample_utils/white_balance_calibration.py>`__ - 使用白色表面作为参考的2D捕获的平衡颜色方法。
应用
高级
验证手眼标定
` robodk_verify_hand_eye_calibration <https://github.com/zivid/zivid-python-samples/tree/master//source/applications/advanced/verify_hand_eye_calibration/robodk_verify_hand_eye_calibration.py>`__ - 使用RoboDK控制机器人执行触碰测试来验证手眼标定的结果。
相机
基础
Capture - 通过相机捕获3D彩色点云并生成HALCON ObjectModel3D,然后将其可视化。
CaptureHDR - 通过相机捕获HDR图像并生成HALCON ObjectModel3D,然后将其可视化。
CaptureHDRCompleteSettings - 通过Zivid相机捕获HDR图像,并为每一帧进行完整的设置。
CaptureSavePLY - 通过相机捕获3D彩色点云并将其保存为PLY文件格式。
ConnectToSerialNumberCamera - 根据序列号连接到指定的Zivid 3D相机。
高级
CaptureHDRLoop - 通过相机循环捕获HDR图像(同时主动更改一些HDR设置)。
InfoUtilOther
QuerySettingsAndParameters - 查询Zivid相机的图像采集接口和选择的具体参数信息。
Warmup - 以指定时间和捕获周期预热Zivid相机的示例。
应用
基础
文件格式
ReadPLY - 导入PLY文件并显示Zivid点云。
高级
对象匹配
SurfaceMatchingCreateModel - 使用Zivid相机捕获的点云,创建一个HALCON的基于表面3D匹配算法的模型。
SurfaceMatchingCreateModelFromFile - 使用从ZDF文件加载的点云,创建一个HALCON的基于表面3D匹配算法的模型。
SurfaceMatchingFindModel - 对Zivid相机捕获的数据使用基于表面的3D匹配算法。
SurfaceMatchingFindModelFromFile - 导入Zivid相机捕获的数据并使用基于表面的3D匹配算法。
相机
基础
Capture - 通过Zivid相机捕获包含颜色数据的点云。
Capture2D - 通过Zivid相机捕获2D图像。
CaptureAssistant - 使用捕获助手通过Zivid相机捕获带有颜色数据的点云。
CaptureFromFileCamera - 从Zivid文件相机捕获带有颜色数据的点云。目前支持Zivid One系列相机。
CaptureHDR - 通过Zivid相机捕获带有颜色数据的HDR点云。
zividApplication - application = zividApplication(folder)
InfoUtilOther
GetCameraIntrinsics - 从Zivid相机(OpenCV格式)读取内参。
应用
基础
可视化
CaptureFromFileCameraVis3D - 从虚拟的Zivid相机捕获带有颜色数据的点云,并将其可视化。目前仅支持Zivid One系列相机。
CaptureVis3D - 从Zivid相机捕获带有颜色数据的点云,并将其可视化。
文件格式
convertZDF - convertZDF(inputFileName,outputFileFormat)
ReadIterateZDF - 从ZDF文件中读取点云数据,对其进行迭代并提取单个的点。
readZDF - [xyz,rgba,snr] = readZDF(dataFile)
高级
Downsample - 将从ZDF文件读取的点云进行降采样。
访问GitHub zivid-ros 存储库。
安装
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
.
如果您确实想使用它们:
Eigen 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
如需获取更多相关信息,请访问GitHub zivid-cpp-samples 存储库。
点击键盘上的Win+R键启动命令提示符,然后键入 cmd
,接着按下 Enter。
导航到要克隆的存储库的位置,然后运行以下命令:
git clone https://github.com/zivid/zivid-csharp-samples
在Visual Studio中打开ZividNETSamples.sln,生成并运行它。如果您不确定如何操作,请查看 使用Visual Studio构建C#示例。
一些示例依赖于外部库,特别是 MathNet.Numerics
。在构建示例时,将通过NuGet自动安装这些库。
如需获取更多相关信息,请访问GitHub zivid-csharp-samples 存储库。
Install Zivid Python。注意:运行这些示例的推荐Python版本是 3.6 - 3.9.
使用IDE或命令行安装runtime requirements:
pip install -r requirements.txt
将目录源添加到PYTHONPATH。导航到存储库的根目录并运行:
PowerShell:
$env:PYTHONPATH=$env:PYTHONPATH + ";$PWDsource"
cmd:
set PYTHONPATH="$PYTHONPATH;$PWDsource"
bash:
export PYTHONPATH="$PYTHONPATH:$PWD/source"
打开并运行其中一个示例。
如需获取更多相关信息,请访问GitHub zivid-python-samples 存储库。
如果你想在HALCON中使用 Zivid,我们提供了一个GenICam GenTL producer( 从 Zivid Software 安装)。
Zivid和HALCON可以在Windows 10和Ubuntu 18.04、20.04、22.04上运行。
备注
自SDK 2.7起,移除了对Ubuntu 16.04的支持。
要在这些操作系统之一中设置和使用Zivid,请按照以下页面中各自的说明进行操作:
以下HALCON版本已经过测试并确认可与Zivid相机配合使用:
19.05 Progress, 20.05 Progress, 21.11 Progress
我们建议使用我们测试过的HALCON版本。
如需获取更多相关信息,请访问GitHub zivid-halcon-samples 存储库。
安装MATLAB软件。注意:使用Zivid相机测试的版本是 2019a。
查看 使用Zivid .NET SDK创建一个MATLAB”Hello World”应用程序
如需获取更多相关信息,请访问GitHub zivid-matlab-samples 存储库。
查看我们的 zivid-ros GitHub库,了解Zivid ROS驱动程序的安装说明、入门和示例。
等同示例
相机
示例 |
C++ |
C# |
Python |
HDevelop |
MATLAB |
---|---|---|---|---|---|
基础 |
|||||
Capture |
|||||
Capture2D |
|||||
capture_2d_with_settings_from_yml |
|||||
CaptureAssistant |
|||||
CaptureFromFileCamera |
|||||
CaptureHdr |
|||||
CaptureHdrCompleteSettings |
|||||
CaptureSavePly |
|||||
CaptureWithSettingsFromYml |
|||||
ConnectToSerialNumberCamera |
|||||
ZividApplication |
|||||
高级 |
|||||
AllocateMemoryForPointCloudData |
|||||
捕获2D+3D |
|||||
CaptureHalconViaGenICam |
|||||
CaptureHalconViaZivid |
|||||
CaptureHdrLoop |
|||||
CaptureHdrPrintNormals |
|||||
MultiCameraCaptureInParallel |
|||||
MultiCameraCaptureSequentially |
|||||
InfoUtilOther |
|||||
CameraUserData |
|||||
CaptureWithDiagnostics |
|||||
FirmwareUpdater |
|||||
FrameInfo |
|||||
GetCameraIntrinsics |
|||||
PrintVersionInfo |
|||||
QuerySettingsAndParameters |
|||||
SettingsInfo |
|||||
Warmup |
|||||
ZividBenchmark |
|||||
维护 |
|||||
CorrectCameraInField |
|||||
ResetCameraInField |
|||||
VerifyCameraInField |
Applications
示例 |
C++ |
C# |
Python |
HDevelop |
MATLAB |
---|---|---|---|---|---|
Basic/Visualization |
|||||
CaptureFromFileCameraVis3D |
|||||
CaptureHdrVisNormals |
|||||
CaptureVis3D |
|||||
CaptureWritePclVis3D |
|||||
ReadPclVis3D |
|||||
read_zdf_vis_3d |
|||||
Basic/FileFormats |
|||||
ConvertZdf |
|||||
ReadIterateZdf |
|||||
ReadPly |
|||||
ReadZdf |
|||||
Zdf2Ply |
|||||
高级 |
|||||
auto_2d_settings |
|||||
CaptureUndistortRgb |
|||||
color_balance |
|||||
CreateDepthMap |
|||||
Downsample |
|||||
GammaCorrection |
|||||
get_checkerboard_pose_from_zdf |
|||||
HandEyeCalibration |
|||||
MaskPointCloud |
|||||
MultiCameraCalibration |
|||||
RoiBoxViaArucoMarker |
|||||
RoiBoxViaCheckerboard |
|||||
TransformPointCloudFromMillimetersToMeters |
|||||
TransformPointCloudViaArucoMarker |
|||||
TransformPointCloudViaCheckerboard |
|||||
Advanced/HandEyeCalibration |
|||||
PoseConversions |
|||||
robodk_hand_eye_calibration |
|||||
UtilizeHandEyeCalibration |
|||||
verify_hand_eye_with_visualization |
|||||
Advanced/HandEyeCalibration/UrHandEyeCalibration |
|||||
universal_robots_perform_hand_eye_calibration |
|||||
Advanced/MultiCamera |
|||||
MultiCameraCalibration |
|||||
MultiCameraCalibrationFromZdf |
|||||
StitchByTransformation |
|||||
StitchByTransformationFromZdf |
|||||
Advanced/ObjectMatching |
|||||
SurfaceMatchingCreateModel |
|||||
SurfaceMatchingCreateModelFromFile |
|||||
SurfaceMatchingFindModel |
|||||
SurfaceMatchingFindModelFromFile |
Sample Utils
示例 |
C++ |
C# |
Python |
HDevelop |
MATLAB |
---|---|---|---|---|---|
calibration_board_utils |
|||||
display |
|||||
paths |
|||||
robodk_tools |
` ✓ <https://github.com/zivid/zivid-python-samples/tree/master//source/sample_utils/robodk_tools.py>`__ |
||||
save_load_matrix |
|||||
white_balance_calibration |
Applications
示例 |
C++ |
C# |
Python |
HDevelop |
MATLAB |
---|---|---|---|---|---|
Advanced/VerifyHandEyeCalibration |
|||||
robodk_verify_hand_eye_calibration |