1. 下载与安装海康 MVS SDK
首先,访问海康机器人官网的下载中心,选择 “Machine Vision” 模块下的 MVS 软件包。
1. 打开浏览器,进入:https://www.hikrobotics.com/cn/
2. 下载最新版的 MVS 安装包(通常以 MVS_x.x.x_x64.exe
命名)。
3. 双击运行安装程序,按照默认路径安装即可。这会在系统中部署所需的动态链接库、示例程序以及文档。
2. 查找与准备运行时库
安装完成后,进入安装目录(默认为 C:\Program Files\HikRobotics\MVS\Runtime
),你会看到一系列 .dll
和 .lib
文件:
- DLL 目录:包含各类动态库,如
MvCameraControl.dll
、GenApi.dll
等。 - LIB 目录:静态库文件,可供链接器使用。
请记下这两个目录的完整路径,后续在 Qt 工程中需要引用。
3. 在 Qt 项目中配置 SDK
在 Qt Creator 中打开你的工程(.pro
文件)。在文件末尾添加以下配置:
# HikVision 相机 SDK 路径
# #############################################################
#
# load HikVision Camera SDK
#
# #############################################################
INCLUDEPATH+=".\libary\camera\Includes"
LIBS+=".\libary\camera\Libraries\CLAllSerial_MD_VC120_v3_0.lib"
LIBS+=".\libary\camera\Libraries\CLProtocol_MD_VC120_v3_0.lib"
LIBS+=".\libary\camera\Libraries\CLSerCOM.lib"
LIBS+=".\libary\camera\Libraries\GCBase_MD_VC120_v3_0.lib"
LIBS+=".\libary\camera\Libraries\GenApi_MD_VC120_v3_0.lib"
LIBS+=".\libary\camera\Libraries\GenCP_MD_VC120_v3_0.lib"
LIBS+=".\libary\camera\Libraries\Log_MD_VC120_v3_0.lib"
LIBS+=".\libary\camera\Libraries\log4cpp_MD_VC120_v3_0.lib"
LIBS+=".\libary\camera\Libraries\MvCameraControl.lib"
LIBS+=".\libary\camera\Libraries\XmlParser_MD_VC120_v3_0.lib"
若使用 Halcon 也需类似配置 Halcon 的包含路径和库路径,具体可参照 Halcon 环境配置文章。
4. 示例代码:查找并打印相机序列号
在主函数中调用 MVS SDK 接口,枚举网络或 USB 相机,并打印其序列号:
#include <QApplication>
#include <QDebug>
#include "MvCameraControl.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MV_CC_DEVICE_INFO_LIST cameraList;
bool isGige = true; // true:枚举 GigE 相机;false:枚举 USB 相机
int nRet = MV_CC_EnumDevices(
isGige ? MV_GIGE_DEVICE : MV_USB_DEVICE,
&cameraList
);
if (nRet != MV_OK) {
qCritical() << "枚举相机失败,错误码:" << nRet;
return -1;
}
if (cameraList.nDeviceNum == 0) {
qWarning() << "未检测到任何相机";
return -1;
}
for (int i = 0; i < cameraList.nDeviceNum; ++i) {
const char* serial = isGige
? reinterpret_cast<char*>(cameraList.pDeviceInfo[i]->SpecialInfo.stGigEInfo.chSerialNumber)
: reinterpret_cast<char*>(cameraList.pDeviceInfo[i]->SpecialInfo.stUsb3VInfo.chSerialNumber);
qDebug() << "查找到相机序列号:" << serial;
}
return a.exec();
}
编译并运行该程序,若控制台中能正常打印出相机的序列号,即表示 SDK 环境配置成功。
5. 小结与常见问题
- 找不到头文件:请确认
INCLUDEPATH
已正确指向Includes
目录。 - 链接错误:检查
.lib
文件名称与版本;若使用不同编译器或架构(x86/x64),需对应版本库。 - 运行缺少 DLL:运行时拷贝所有
Bin
下的 DLL 到 exe 目录,或添加到系统PATH
。 - Halcon 集成:在同一工程中配置 Halcon 库时,注意 Halcon 的头文件版本与 MVS SDK 不冲突。
按照以上步骤,便可顺利在 Qt/Halcon 项目中集成海康 MVS 相机 SDK,实现相机的枚举与控制。祝开发顺利!