海康机器人工业相机 Win10+Qt+Cmake 开发环境搭建

文章目录

  • [一. Qt搭建海康机器人工业相机开发环境](#一. Qt搭建海康机器人工业相机开发环境)

一. Qt搭建海康机器人工业相机开发环境

  1. 参考这个链接安装好MVS客户端

  2. Qt新建一个c++项目

  3. cmakeList中添加海康机器人的库,如下:

    bash 复制代码
    cmake_minimum_required(VERSION 3.5)
    
    project(HIKRobotCameraTest LANGUAGES CXX)
    
    set(CMAKE_CXX_STANDARD 17)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    
    # 海康机器人库文件设置
    set(MVC_DIR "C:\\Program Files (x86)\\MVS\\Development")
    set(MVC_INCLUDE_DIRS ${MVC_DIR}\\Includes)
    set(MVC_LIB_DIRS ${MVC_DIR}\\Libraries\\win64)
    include_directories(${MVC_INCLUDE_DIRS})
    link_directories(${MVC_LIB_DIRS})
    
    add_executable(HIKRobotCameraTest main.cpp)
    
    target_link_libraries(${PROJECT_NAME} PUBLIC MvCameraControl)
    
    install(TARGETS HIKRobotCameraTest
        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
  4. main.cpp中添加以下代码

    cpp 复制代码
    #include <iostream>
    #include "MvCameraControl.h"
    #include <stdio.h>
    #include <Windows.h>
    #include <conio.h>
    
    using namespace std;
    
    bool PrintDeviceInfo(MV_CC_DEVICE_INFO* pstMVDevInfo)
    {
        if (NULL == pstMVDevInfo)
        {
            printf("The Pointer of pstMVDevInfo is NULL!\n");
            return false;
        }
        if (pstMVDevInfo->nTLayerType == MV_CAMERALINK_DEVICE)
        {
            printf("chPortID: [%s]\n", pstMVDevInfo->SpecialInfo.stCamLInfo.chPortID);
            printf("chModelName: [%s]\n", pstMVDevInfo->SpecialInfo.stCamLInfo.chModelName);
            printf("chFamilyName: [%s]\n", pstMVDevInfo->SpecialInfo.stCamLInfo.chFamilyName);
            printf("chDeviceVersion: [%s]\n", pstMVDevInfo->SpecialInfo.stCamLInfo.chDeviceVersion);
            printf("chManufacturerName: [%s]\n", pstMVDevInfo->SpecialInfo.stCamLInfo.chManufacturerName);
            printf("Serial Number: [%s]\n", pstMVDevInfo->SpecialInfo.stCamLInfo.chSerialNumber);
        }
        else
        {
            printf("Not support.\n");
        }
    
        return true;
    }
    
    
    int main()
    {
        int nRet = MV_OK;
        void* handle = NULL;
    
        MV_CC_DEVICE_INFO_LIST stDeviceList;
        memset(&stDeviceList, 0, sizeof(MV_CC_DEVICE_INFO_LIST));
        nRet = MV_CC_EnumDevices(MV_CAMERALINK_DEVICE, &stDeviceList);
        if (MV_OK != nRet)
        {
           printf("Enum Devices fail! nRet [0x%x]\n", nRet);
        }
    
        if (stDeviceList.nDeviceNum > 0)
        {
           for (unsigned int i = 0; i < stDeviceList.nDeviceNum; i++)
           {
               printf("[device %d]:\n", i);
               MV_CC_DEVICE_INFO* pDeviceInfo = stDeviceList.pDeviceInfo[i];
               if (NULL == pDeviceInfo)
               {
               }
               PrintDeviceInfo(pDeviceInfo);
           }
        }
        else
        {
           printf("Find No Devices!\n");
        }
    
        return 0;
    }
  5. 运行程序,出现以下内容则说明安装库成功

相关推荐
机器视觉知识推荐、就业指导19 小时前
为什么有些相机“即插即用”,而有些则需要采集卡?
工业相机·线阵相机·相机接口
51camera1 天前
工业相机基本知识解读:像元、帧率、数据接口等
工业相机·机器视觉相机
ccut 第一混13 天前
c# winform 调用 海康威视工业相机(又全又细又简洁)
开发语言·c#·工业相机·海康威视
ccut 第一混14 天前
海康威视相机,MVS连接成功,但无图像怎么办?
工业相机·海康威视·mvs
tirvideo1 个月前
TI DLP3010光机与相机触发使用指南
3d·工业相机·光机·dlp·光机控制板·投影机
幻想趾于现实1 个月前
机器视觉之工业相机讲解
数码相机·工业相机
51camera2 个月前
如何选择合适的工业相机快门种类
工业相机·全局快门·卷帘快门
钱彬 (Qian Bin)3 个月前
一文掌握工业相机选型计算
机器视觉·工业·工业相机·相机选型·焦距·视场
罗迪尼亚的熔岩3 个月前
kuka, fanuc, abb机器人和移动相机的标定
机器人·工业相机·海康威视·标定·visonmaster
51camera4 个月前
在机器视觉检测中为何选择线阵工业相机?
视觉检测·工业相机