C++ 语言(Windows)
本章介绍如何在 Windows 系统上用 CMake 和 Visual Studio 配置 Mech-DLK SDK 中的 C++ 例程。
例程简介
例程分为 2 类:Basic 和 Advanced。
-
Basic 例程:使用 Mech-DLK 导出的各类单级模型推理单张图片、多图同时推理、获取并可视化结果;
-
Advanced 例程:Mech-DLK SDK 与 OpenCV 协同开发。
Basic
-
ImageInfer:单图推理示例。
-
MultiImageInfer:多图同时推理示例。
Advanced
-
ImageInferWithOpenCV:Mech-DLK SDK 与 OpenCV 配合使用示例(需本地安装 OpenCV)。
使用前提
使用 Mech-DLK SDK 中的 C++ 语言例程,需先满足以下使用前提:
安装必需软件
使用 Mech-DLK SDK 的 C++ 例程,必须安装 Mech-DLK SDK、CMake 及 Visual Studio。
安装 Mech-DLK SDK
请根据 安装指南 获取最新版本的 Mech-DLK SDK 及其依赖的第三方库和资源文件。
安装 CMake(3.2 或以上版本)
-
下载 CMake:选择 Windows x64 Installer 右侧的安装包。
-
安装时,请勾选下图中的两个选项,以将 CMake 添加至环境变量,并创建 CMake 的桌面快捷方式。
(可选)安装 OpenCV
如需运行 Advanced 例程(ImageInferWithOpenCV
),请按以下步骤安装 OpenCV,并将其添加至系统变量。
-
下载并安装 OpenCV。请记录 OpenCV 的存放路径。
-
安装完成后,可看到 OpenCV 存放文件夹中有以下文件:
ImageInferWithOpenCV 例程已使用 OpenCV 4.8.0 完成测试,可正常运行。
|
添加环境变量
请根据以下步骤添加相关的环境变量。
-
右键单击桌面上的“此电脑”,选择“属性”。
-
选择“高级系统设置”,在弹出的“系统属性”对话框的“高级”选项卡上,单击 环境变量,进入“环境变量”界面。
-
在“系统变量”下,单击新建,在“新建系统变量”对话框的“变量名”框中输入 MECHDL_DIR,“变量值”框中输入 xxx/mechdlk_sdk,然后单击确定。
如需运行
ImageInferWithOpenCV
例程,需将 OpenCV 添加至环境变量:-
在“系统变量”下,单击新建。
-
在“新建系统变量”对话框的“变量名”框中输入 OPENCV_DIR,“变量值”框中输入 OpenCV 的 build 文件夹路径(xxx/opencv/build),然后单击确定。
-
-
在“系统变量”框中,滚动到“Path”并双击它进入到“编辑环境变量”页面。
-
单击右上角新建,添加 %MECHDL_DIR%,再单击右下角确定。
如果“编辑环境变量”框中有 %MMIND_DLK%,选中后单击右侧的删除按钮移除此变量。 |
构建及运行例程
你可以一次性构建全部例程。
使用 CMake 配置例程
-
双击 CMake 桌面图标打开软件。
-
选择或输入源码路径与构建目录路径。如果没有构建目录路径,可以直接在源码路径后添加 \build,并继续以下的配置操作。
Where is the source code
xxx\mechdlk_sdk\samples\cpp
Where to build the binaries
xxx\mechdlk_sdk\samples\cpp\build
-
单击 Configure。首次配置时,因没有构建目录路径,此时会弹窗请求构建 build 文件夹,请单击Yes。
进入配置页面,选择 Visual Studio 的版本,然后单击Finish。
配置成功后,日志最末行将显示 Configuring done。
运行 Basic 例程时,无需勾选 USE_OPENCV 选项;运行 Advanced 例程时,请确认 USE_OPENCV 选项已勾选。
-
单击 Generate 生成解决方案。生成成功后,日志最末行将显示 Generating done。然后,单击Open Project,使用 Visual Studio 打开解决方案。
使用 Visual Studio 构建例程
-
确认 Visual Studio 工具栏中的解决方案配置为 Release 模式。当前未提供 Debug 版本的 DLL 文件。
-
在菜单栏上选择
。每个例程会生成对应的可执行文件(.exe),保存在 Release 文件夹中,位于 xxx\mechdlk_sdk\samples\cpp\build 目录下。 -
将项目文件夹中的 resources 文件夹拷贝至 xxx\mechdlk_sdk\samples\cpp\build\Release 目录下。
-
将项目文件夹中的 3rd_dll 文件夹内的全部文件拷贝至 xxx\mechdlk_sdk\samples\cpp\build\Release 目录下。
请拷贝3rd_dll 文件夹内的全部文件,不要将文件夹拷贝至目录下。 -
将项目文件夹中的 mechdlk_sdk\dll 文件夹内的全部文件拷贝至 xxx\mechdlk_sdk\samples\cpp\build\Release 目录下。
请拷贝mechdlk_sdk\dll 文件夹内的全部文件,不要将文件夹拷贝至目录下。 -
(可选)如需运行 Advanced 例程,请将OpenCV存放路径 xxx\opencv\build\x64\vc16\bin 下的
opencv_world480.dll
文件拷贝至 xxx\mechdlk_sdk\samples\cpp\build\Release 目录下。
拷贝完成后,目标文件夹中应包含以下类型的文件(文件名可能不同):