C 语言(Windows)
本章介绍如何在 Windows 系统上用 CMake 和 Visual Studio 配置 Mech-DLK SDK 中的 C 语言例程。
例程简介
例程分为 2 类:Basic 和 Advanced。
-
Basic 例程:使用 Mech-DLK 导出的各类单级模型推理单张图片、获取并可视化结果;
-
Advanced 例程:级联模型推理、多图同时推理。
Basic
-
Classification:图像分类模型推理示例;
-
DefectSegmentation:缺陷分割模型推理示例;
-
FastPositioning:快速定位模型推理示例;
-
InstanceSegmentation:实例分割模型推理示例;
-
ObjectDetection:目标检测模型推理示例。
Advanced
-
CascadeModel:级联模型推理示例;
-
FolderImagesInfer:依次推理文件夹中图像示例;
-
MultiImageInfer:多图同时推理示例。
使用前提
使用 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 的桌面快捷方式。
添加环境变量
请根据以下步骤添加相关的环境变量。
-
右键单击桌面上的“此电脑”,选择“属性”。
-
选择“高级系统设置”,在弹出的“系统属性”对话框的“高级”选项卡上,单击 环境变量,进入“环境变量”界面。
-
在“系统变量”下,单击新建,在“新建系统变量”对话框的“变量名”框中输入 MECHDL_DIR,“变量值”框中输入 xxx/mechdlk_sdk,然后单击确定。
-
在“系统变量”框中,滚动到“Path”并双击它进入到“编辑环境变量”页面。
-
单击右上角 新建,添加 %MECHDL_DIR%,再单击右下角 确定。
如果“编辑环境变量”框中有 %MMIND_DLK%,选中后单击右侧的删除按钮移除此变量。 |
构建及运行例程
你可以一次性构建全部例程。
使用 CMake 配置例程
-
双击 CMake 桌面图标打开软件。
-
选择或输入源码路径与构建目录路径。如果没有构建目录路径,可以直接在源码路径后添加 \build,并继续以下的配置操作。
Where is the source code
xxx\mechdlk_sdk\samples\c
Where to build the binaries
xxx\mechdlk_sdk\samples\c\build
-
单击 Configure。首次配置时,因没有构建目录路径,此时会弹窗请求构建 build 文件夹,请单击 Yes。
进入配置页面,选择 Visual Studio 的版本,然后单击 Finish。
配置成功后,日志最末行将显示 Configuring done。
-
单击 Generate 生成解决方案。生成成功后,日志最末行将显示 Generating done。然后,单击 Open Project,使用 Visual Studio 打开解决方案。
你也可以打开 build 文件夹(路径:xxx\mechdlk_sdk\samples\c\build),找到并双击 MechDLKSDKCSamples.sln 文件,使用 Visual Studio 打开解决方案。 |
使用 Visual Studio 构建例程
-
确认 Visual Studio 工具栏中的解决方案配置为 Release 模式。当前未提供 Debug 版本的 DLL 文件。
-
在菜单栏上选择
。每个例程会生成对应的可执行文件(.exe),保存在 Release 文件夹中,位于 xxx\mechdlk_sdk\samples\c\build 目录下。 -
将项目文件夹中的 resources 文件夹拷贝至以下目录下:
-
xxx\mechdlk_sdk\samples\c\build\Release
-
-
将项目文件夹中的 3rd_dll 文件夹内的全部文件拷贝至 xxx\mechdlk_sdk\samples\c\build\Release 目录下。
-
将项目文件夹中的 mechdlk_sdk\dll 文件夹内的全部文件拷贝至 xxx\mechdlk_sdk\samples\c\build\Release 目录下。