Qt联合Halcon开发四:【详细图解】海康相机配置并链接测试

发布于:2025-06-24 ⋅ 阅读:(17) ⋅ 点赞:(0)

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.dllGenApi.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,实现相机的枚举与控制。祝开发顺利!


网站公告

今日签到

点亮在社区的每一天
去签到