使用 HALCON 算子的 C++ 程序必须包含 HalconCpp.h 文件,该文件包含所有与用户相关的 HALCON 系统定义以及 C++ 接口所需的声明。为此,请在 C++ 文件顶部添加以下命令:
#include "HalconCpp.h"
要在命令行中指定编译器的包含路径,请使用以下语法:
-I$HALCONROOT/include -I$HALCONROOT/include/halconcpp
要创建应用程序,必须将两个库链接到程序中: libhalconcpp.so 库包含 HALCON/C++ 接口的各种组件。libhalcon.so 库是 HALCON 库。要为链接器指定库路径和库,请使用以下语法:
-L$HALCONROOT/lib/$HALCONARCH -lhalconcpp -lhalcon -lpthread
在某些系统上,还必须链接 libdl.so 和 librt.so(分别使用附加选项 -ldl 和 -lrt)。
HALCON XL 应用:
!
请注意,只有在需要 HALCON XL 功能时才使用。
如果要使用 HALCON XL,请链接 libhalconcppxl.so 和 libhalconxl.so 库。
要在 Linux 下链接和运行应用程序,请确保系统变量 LD_LIBRARY_PATH 包含 HALCON 库路径 $HALCONROOT/lib/$HALCONARCH。
下面的示例显示了一个名为 main.cpp 的非常基本的 C++ 程序,它读取图像并打印其宽度和高度:
#include "HalconCpp.h" #include <iostream> int main(int argc, char **argv) { HalconCpp::HObject hobj; HalconCpp::HTuple width, height; HalconCpp::ReadImage(&hobj, "printer_chip/printer_chip_01"); HalconCpp::GetImageSize(hobj, &width, &height); std::cout << "Image - width: " << width.I() << ", height: " << height.I() << '\n'; return 0; }
要在 Linux 下编译和链接程序,请运行:
g++ -o example main.cpp -I$HALCONROOT/include -I$HALCONROOT/include/halconcpp \ -L$HALCONROOT/lib/$HALCONARCH -lhalconcpp -lhalcon -lpthread
在 Linux 下使用 CMake 构建 HALCON 示例
您可以在 $HALCONEXAMPLES/cpp 下面的目录中找到展示各种 HALCON 用例以及如何用 C++ 实现这些用例的示例。您可以使用提供的 CMakeLists.txt 文件用 CMake 构建这些示例。
要使用 CMake 生成示例程序,请执行以下操作:
mkdir build cd build cmake $HALCONEXAMPLES/cpp/console cmake --build .
要进行配置,CMake 需要知道 HALCON 安装的位置、示例文件的位置以及要使用的 HALCON 架构:
有关如何使用 CMake 的一般信息,参见 CMake 文档。
HALCON XL 应用: 默认情况下,示例将使用标准版本的 HALCON 构建。如果要使用 HALCON XL 构建,请在 CMake 配置时将选项 HALCON_XL 设为 ON 或 1。
您还可以在其他子目录(mfc/FGMultiThreading、mfc/Matching、mfc/MatchingExtWin、motif/Matching、qt/Matching)中找到相应的 CMakeLists.txt 文件。