使用可选依赖项配置 C++ 示例
本教程介绍如何使用 CMake 为 Zivid C++ 示例配置可选依赖项。
要求
可选要求
一些示例依赖于外部库,特别是:
备注
以下说明已使用这些版本的依赖项进行了测试:
Visual Studio 2019 及更高版本
CMake 3.24 及更高版本
PCL 1.12.1
Eigen 3.4.0
OpenCV 4.7.0
Open3D 0.19.0
如果您使用其他版本,您可能会遇到问题。
根据您要运行的示例程序安装所需的依赖项;请参阅下表。
示例程序 |
PCL |
Eigen |
OpenCV |
Halcon |
Open3D |
---|---|---|---|---|---|
ReadPCLVis3D |
YES |
||||
CaptureWritePCLVis3D |
YES |
||||
CaptureHDRVisNormals |
YES |
||||
StitchByTransformation |
YES |
||||
StitchByTransformationFromZDF |
YES |
||||
MaskPointCloud |
YES |
YES |
|||
ROIBoxViaCheckerboard |
YES |
||||
UtilizeHandEyeCalibration |
YES |
||||
PoseConversions |
YES |
||||
ROIBoxViaArucoMarker |
YES |
YES |
|||
CaptureUndistort2D |
YES |
||||
CreateDepthMap |
YES |
||||
ProjectAndFindMarker |
YES |
||||
ReprojectPoints |
YES |
||||
ReadAndProjectImage |
YES |
||||
GammaCorrection |
YES |
||||
AllocateMemoryForPointCloudData |
YES |
||||
TransformPointCloudViaCheckerboard |
YES |
||||
TransformPointCloudViaArucoMarker |
YES |
||||
CaptureHalconViaGenICam |
YES |
||||
CaptureHalconViaZivid |
YES |
通过运行以下命令从包管理器安装 Eigen 3:
sudo apt install libeigen3-dev
导航到您在 zivid-cpp-samples 中创建的构建目录并运行
mkdir build
cd build
cmake -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3 -DUSE_OPENCV=OFF -DUSE_PCL=OFF -DUSE_OPEN3D=OFF ../source
cmake --build .
通过运行以下命令从包管理器安装 PCL:
sudo apt install libpcl-dev
导航到您在 zivid-cpp-samples 中创建的构建目录并运行
mkdir build
cd build
cmake -DUSE_PCL=ON -DUSE_EIGEN3=OFF -DUSE_OPENCV=OFF -DUSE_OPEN3D=OFF ../source
cmake --build .
通过运行以下命令从包管理器安装 OpenCV:
sudo apt install libopencv-dev clang-tidy
导航到您在 zivid-cpp-samples 中创建的构建目录并运行
mkdir build
cd build
cmake -DUSE_OPENCV=ON -DUSE_EIGEN3=OFF -DUSE_PCL=OFF -DUSE_OPEN3D=OFF ../source
cmake --build .
从 https://github.com/isl-org/Open3D/releases 下载并安装预构建的 Open3D 二进制文件。
对于 0.19.0 版本,请从 https://github.com/isl-org/Open3D/releases/download/v0.19.0/open3d-devel-linux-x86_64-cxx11-abi-0.19.0.tar.xz 下载 tarball
该 tarball 包含一个名为 open3d-devel-linux-x86_64-cxx11-abi-0.19.0
的文件夹。将此文件夹的内容复制到 /usr/local
。
您可以通过在终端中运行以下命令一次性完成此操作:
sudo tar --strip-components=1 -xvf ./open3d-devel-linux-x86_64-cxx11-abi-0.19.0-C /usr/local
导航到您在 zivid-cpp-samples 中创建的构建目录并运行
mkdir build
cd build
cmake -DUSE_OPEN3D=ON -DUSE_EIGEN3=OFF -DUSE_OPENCV=OFF -DUSE_PCL=OFF ../source
cmake --build .
从 http://eigen.tuxfamily.org/ 下载 Eigen 的最新稳定版本,并将文件夹解压到所需的位置。配置 CMake 项目时,请包含 Eigen 以配置依赖它的示例。
导航到您在 zivid-cpp-samples 中创建的构建目录并运行
cmake -DEIGEN3_INCLUDE_DIR=<path> -DUSE_OPENCV=OFF -DUSE_PCL=OFF ../source
其中 <path>
是安装 Eigen 的完整路径,例如 C:/Program Files/Eigen
。
在 https://github.com/PointCloudLibrary/pcl/releases 中选择 .exe
下载并安装预构建的 PCL 二进制文件。勾选安装第三方库的选项。

在配置 Zivid PCL 代码示例之前,必须将一些设置添加到 PATH 系统变量中。在您的电脑上,导航至 Control Panel → System and Security → System → Advanced System Settings → Environment Variables 。在 系统变量 下,选择 Path
变量,然后点击 Edit 。

在 Edit environment variable 窗口中,单击 New 并添加 PCL 二进制文件和 OpenNI2(第三方库)的路径,例如:
C:\Program Files\PCL 1.12.1\bin
C:\Program Files\OpenNI2\Tools
如果您已在 Program Files 中安装了 PCL 1.12.1 和 OpenNI2,则可能需要退出 Windows 帐户并重新登录才能使更改生效。
警告
您可能需要手动链接到某些第三方 PCL 库,例如 VTK。如果遇到错误,请在 PATH 系统变量中添加库二进制文件的路径。例如,对于 VTK,如果您在 Program Files 中安装了 PCL 1.12.1,则需要添加 C:/Program Files/PCL 1.12.1/3rdParty/VTK/bin
。
配置 CMake 项目时,应该已经配置了 PCL 的路径。
从 https://opencv.org/releases/ 下载并安装预编译的 OpenCV 二进制文件。解压到你想要的路径,例如
C:\Users\Public
在配置 Zivid OpenCV 代码示例之前,必须将一些设置添加到 PATH 系统变量中。在您的电脑上,导航至 Control Panel → System and Security → System → Advanced System Settings → Environment Variables 。在 系统变量 下,选择 Path
变量,然后点击 Edit 。

在 Edit environment variable 窗口中,单击 New 并添加 OpenCV 二进制文件的路径,例如
C:\Program Files\opencv\build\x64\vc16\bin
如果您已经安装了 OpenCV 4.7.0 并将其解压到 C:/Program Files/opencv
。
警告
您可能需要退出 Windows 帐户并再次登录才能使更改生效。
配置 CMake 项目时,包含 OpenCV 来配置依赖于它的示例。
导航到您在 zivid-cpp-samples 中创建的构建目录并运行
cmake -DOpenCV_DIR=<path> -DUSE_EIGEN3=OFF -DUSE_PCL=OFF ../source
其中 <path>
是 OpenCV 构建文件夹的完整路径,例如 C:/Program Files/opencv/build
。
您需要在电脑上安装 Halcon 才能运行 Halcon C++ 示例。请参阅 在Windows中安装Zivid + HALCON 获取更多说明。
安装 Halcon 后,配置 CMake 以使用 Halcon 示例。
从 https://github.com/isl-org/Open3D/releases 下载并安装预编译的 Open3D 二进制文件。Open3D 不支持多配置构建,因此您必须选择要配置的配置。
将它们提取到您想要的目的地,例如
C:\Program Files\Open3D
C:\Program Files\Open3D-Debug
为了让 CMake 找到 Open3D,您必须执行以下操作之一:
设置
CMAKE_INSTALL_PREFIX
变量以指向包含CMake
文件夹的文件夹,或者您必须设置
Open3D_DIR
变量以指向包含Open3DConfig.cmake
的文件夹
导航到您在 zivid-cpp-samples 中创建的构建目录并运行
cmake -DUSE_OPEN3D=ON -DCMAKE_INSTALL_PREFIX=<path-to-open3d> -DUSE_EIGEN3=OFF -DUSE_OPENCV=OFF -DUSE_PCL=OFF ../source
其中 <path-to-open3d>
是 Open3D 文件夹的路径,例如 C:/Program Files/Open3D
。
为了运行 Open3D 示例,您必须将 Open3D 二进制文件夹添加到 PATH 环境变量中。
如果你想同时配置多个依赖项,可以在 CMake 中同时添加多个依赖项。例如,如果你想要运行所有需要 Eigen 和 Open3D 的示例,可以运行以下命令:
mkdir build
cd build
cmake -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3 -DUSE_OPEN3D=ON -DUSE_PCL=OFF -DUSE_OPENCV=OFF ../source
cmake -DEIGEN3_INCLUDE_DIR=<path-to-eigen> -DUSE_OPEN3D=ON -DCMAKE_INSTALL_PREFIX=<path-to-open3d> -DUSE_PCL=OFF -DUSE_OPENCV=OFF ../source
where <path-to-eigen>
is the full path to where you installed Eigen, e.g. C:/Program Files/Eigen
, and <path-to-open3d>
is the path to the Open3D folder, e.g. C:/Program Files/Open3D
.