C++ 语言(Windows)
本章介绍如何在 Windows 系统上使用 Mech-DLK SDK 的 C++ 例程。关于各类例程的功能说明,请参见 例程使用指南。
安装包内容
Mech-DLK SDK 安装包中 C++ 例程相关文件说明如下:
| 目录 | 说明 |
|---|---|
cpp/bin |
依赖的第三方库( |
cpp/docs |
C++ 接口文档 |
cpp/examples |
C++ 示例程序 |
cpp/include |
C++ 头文件 |
cpp/lib |
C++ 库文件 |
cpp/Licenses |
依赖库许可文件 |
cpp/resources |
模型包和测试图像等例程运行所需文件 |
|
使用前提
使用 Mech-DLK SDK 中的 C++ 例程,需先安装以下软件:
安装 Mech-DLK SDK
请根据 安装指南 获取最新版本的 Mech-DLK SDK 并完成安装。
安装 CMake
-
下载 CMake 安装包:选择 Windows x64 Installer 对应的安装包。
-
安装时,建议勾选将 CMake 添加到环境变量的选项。
|
编译 C++ 例程前,请确保已安装 CMake 3.10 及以上版本。 |
例程调整说明
在编译和运行各类 C++ 例程前,可根据实际业务需求,对输入图像、模型包及相关资源文件进行调整。以下内容为常见调整项示例。
-
输入图像:可替换待检测图像,或按实际需求修改图像读取路径。
-
模型包:安装包默认提供缺陷分割模型包,可根据实际业务需求替换为所需模型包。
-
结果输出:可按项目需要调整检测结果的输出方式,例如修改结果图的保存路径、文件名称或输出位置。
-
资源文件:可在 cpp/resources 目录中新增或替换业务所需图像、模型包及相关资源文件。
编译及运行例程
完成相关调整后,可按以下步骤编译并运行例程。
Basic 例程
编译
-
打开 CMake,在源码路径中选择包含构建脚本的目录,即 cpp/examples 目录,在构建目录中选择或输入用于生成工程的目录,例如 cpp/build。
Where is the source code
xxx\cpp\examples
Where to build the binaries
xxx\cpp\build
-
单击 Configure。首次配置时,如果构建目录不存在,请在弹出的对话框中单击 Yes 创建目录。
在配置页面中选择已安装的 Visual Studio 版本,并将平台设置为 x64,然后单击 Finish。
配置成功后,日志最末行将显示 Configuring done。
-
在 CMake 配置项中,确认 SDK 路径配置正确:
-
DL_SDK_INCLUDE_PATH指向 cpp/include 目录(用于查找头文件)。
-
DL_SDK_LIB_PATH指向 cpp/lib 目录(用于链接库文件)。
如路径配置不正确,可能导致编译失败。修改后请再次单击 Configure,确认无误后再继续后续步骤。
-
-
单击 Generate。生成成功后,日志最末行将显示 Generating done。然后单击 Open Project,使用 Visual Studio 打开解决方案。
-
在 Visual Studio 工具栏中,将解决方案配置设置为 Release,并将解决方案平台设置为 x64。之后,在 Visual Studio 菜单栏上选择 。
-
编译完成后,可在构建目录(即 cpp/build/Release)下看到生成的
example_basic.exe文件。
运行
-
将 cpp/bin 目录中的
hasp_rt.exe文件和所有.dll文件拷贝至example_basic.exe所在目录。 -
将 cpp/resources 目录中的
resources文件夹拷贝至example_basic.exe同级目录。
-
在 cpp/build/Release 目录下,双击生成的
example_basic.exe文件运行例程;如需在 Visual Studio 中运行,请先将example_basic项目设为启动项目,再单击 本地 Windows 调试器 运行。
|
cpp/resources 目录中包含例程运行所需的模型和资源文件,请确保其位于程序可正确访问的位置。 |
Advanced 例程(多线程推理)
编译
多线程推理例程的编译方式与 Basic 例程一致。完成 Basic 例程的编译步骤 后,可在 cpp/build/Release 目录下看到 example_advanced_multi_thread_infer.exe 文件。
运行
-
将 cpp/bin 目录中的
hasp_rt.exe文件和所有.dll文件拷贝至example_advanced_multi_thread_infer.exe所在目录。 -
将 cpp/resources 目录中的
resources文件夹拷贝至example_advanced_multi_thread_infer.exe同级目录。 -
在 cpp/build/Release 目录下,双击生成的
example_advanced_multi_thread_infer.exe文件运行例程;如需在 Visual Studio 中运行,请先将example_advanced_multi_thread_infer项目设为启动项目,再单击 本地 Windows 调试器 运行。
| 多线程推理例程默认采用每个线程创建独立推理引擎的方式;若多线程共用同一个推理引擎,请确保多线程并发使用时的安全性。 |
Advanced 例程(OpenCV)
编译
-
按 Basic 例程的编译步骤 完成首次配置。
-
在 CMake 配置页面中启用
USE_OPENCV,并填写OpenCV_INCLUDE_DIR和OpenCV_LIB_DIR路径。
-
填写完成后,再次单击 Configure,确认无新增红色配置项后,单击 Generate。
-
生成成功后,日志最末行将显示 Generating done。然后单击 Open Project,使用 Visual Studio 打开解决方案。
-
在 Visual Studio 工具栏中,将解决方案配置设置为 Release,并将解决方案平台设置为 x64。之后,在 Visual Studio 菜单栏上选择 。
-
编译完成后,可在 cpp/build/Release 目录下看到生成的
example_advanced_infer_with_opencv.exe文件。
运行
-
将 cpp/bin 目录中的
hasp_rt.exe文件和所有.dll文件拷贝至example_advanced_infer_with_opencv.exe所在目录。 -
将 cpp/resources 目录中的
resources文件夹拷贝至example_advanced_infer_with_opencv.exe同级目录。 -
将 OpenCV 运行时相关依赖库拷贝至
example_advanced_infer_with_opencv.exe同级目录。 -
在 cpp/build/Release 目录下,双击生成的
example_advanced_infer_with_opencv.exe文件运行例程;如需在 Visual Studio 中运行,请先将example_advanced_infer_with_opencv项目设为启动项目,再单击 本地 Windows 调试器 运行。
Advanced 例程(HALCON)
编译
-
按 Basic 例程的编译步骤 完成首次配置。
-
在 CMake 配置页面中启用
USE_HALCON,并填写HALCON_INCLUDE_DIR和HALCON_LIB_DIR路径。
-
填写完成后,再次单击 Configure,确认无新增红色配置项后,单击 Generate。
-
生成成功后,日志最末行将显示 Generating done。然后单击 Open Project,使用 Visual Studio 打开解决方案。
-
在 Visual Studio 工具栏中,将解决方案配置设置为 Release,并将解决方案平台设置为 x64。之后,在 Visual Studio 菜单栏上选择 。
-
编译完成后,可在 cpp/build/Release 目录下看到生成的
example_advanced_infer_with_halcon.exe文件。
运行
-
将 cpp/bin 目录中的
hasp_rt.exe文件和所有.dll文件拷贝至example_advanced_infer_with_halcon.exe所在目录。 -
将 cpp/resources 目录中的
resources文件夹拷贝至example_advanced_infer_with_halcon.exe同级目录。 -
在 cpp/build/Release 目录下,双击生成的
example_advanced_infer_with_halcon.exe文件运行例程;如需在 Visual Studio 中运行,请先将example_advanced_infer_with_halcon项目设为启动项目,再单击 本地 Windows 调试器 运行。