海康机器人图像采集卡安装与使用

您所在的位置:网站首页 采集卡驱动安装不上 海康机器人图像采集卡安装与使用

海康机器人图像采集卡安装与使用

2023-12-24 06:25| 来源: 网络整理| 查看: 265

海康机器人图像采集卡安装与使用 1.安装环境要求1.1主板硬件配置需求1.2软件安装1.2.1 MVS软件安装 2.软件使用2.1枚举相机,取流 3.软件SDK二次开发3.1基于工业相机SDK,通过GenTL进行二次开发(GIGE采集卡推荐,CXP卡也能使用)3.2 基于采集卡SDK进行二次开发 本文适用范围,包括海康CoaXPress:GX1004,Gige采集卡:GE1004,Cameralink:GC1002,操作方法,大同小异

1.安装环境要求 1.1主板硬件配置需求

在这里插入图片描述 图为:cxp采集卡 工控机:主板需支持PCIE Gen2 x8,内存8GB及其以上 操作系统:windows7 /10 64bits (暂不支持linux等其他操作系统)

1.2软件安装 1.2.1 MVS软件安装

驱动下载安装:可以到海康机器人官网下载MVS安装 如有其他版本mvs,建议卸载后重新安装! 如装过MVFG等软件,建议卸载,MVFG已淘汰

默认安装后,安装成功后打开设备管理器,出现采集卡设备即表明安装完成,如下图所示: CXP6采集卡 图为CXP采集卡 在这里插入图片描述 图为CML采集卡

2.软件使用 2.1枚举相机,取流

打开MVS软件,右键点击客户端中的【GenTL】并点击“选择cti文件” 在这里插入图片描述

路径中选择对应CTI路径:*C:\Program Files (x86)\Common Files\MVS\Runtime\Win64_x64* 在这里插入图片描述 选择“MvFGProducerCML.cti“文件后,在MVS客户端刷新GenTL后就可以枚举到采集卡

在这里插入图片描述 点击采集卡列表右侧链接按钮,打开采集卡,出现采集卡相关参数,以及当前采集卡下面的相机 在这里插入图片描述 点击相机列表右侧链接按钮,即可链接打开相机 在这里插入图片描述

3.软件SDK二次开发

海康自研采集卡二次开发的有两种开发方式,各有优缺点

3.1基于工业相机SDK,通过GenTL进行二次开发(GIGE采集卡推荐,CXP卡也能使用)

CXP开发: 优点: 1.工业相机sdk开发简单,开发节奏快,基于工业网口相机代码,改动量超级小(改动量不超过10行) 2.其他品牌的CXP采集卡,如MIL rapxio系列、kaya,eursys采集卡也可参考BasicDemoByGenTL示例程序进行开发,代码兼容性好 缺点: 暂时无法配置采集卡相关参数,例如通过采集卡触发相机使用不方便(软触发相机,连续出流无此缺点,gige卡无此缺点) 参考工业相机例程BasicDemoByGenTL, 例程路径:“C:\Program Files (x86)\MVS\Development\Samples\VC\VS\BasicDemoByGenTL” 在这里插入图片描述 在这里插入图片描述 基于Gentl枚举卡,枚举相机代码

MV_GENTL_IF_INFO_LIST m_stIFInfoList; memset(&m_stIFInfoList, 0, sizeof(MV_GENTL_IF_INFO_LIST)); MV_GENTL_DEV_INFO_LIST m_stDeviceList; memset(&m_stDeviceList, 0, sizeof(MV_GENTL_DEV_INFO_LIST)); // ch:基于GenTL枚举Interface | en:Enum Interface Based On GenTL nRet = MV_CC_EnumInterfacesByGenTL(&m_stIFInfoList, "C:/Program Files/KAYA Instruments/Common/bin/KYFGLibGenTL_vc141.cti"); if (MV_OK != nRet) { printf("Enum InterfacesByGenTL fail! nRet [0x%x]\n", nRet); } if (m_stIFInfoList.nInterfaceNum == 0) { printf("nInterfaceNum 0\n"); } for (unsigned int i = 0; i printf("Enum DevicesByGenTL fail! nRet [0x%x]\n", nRet); } if (m_stDeviceList.nDeviceNum == 0) { printf("nDeviceNum 0\n"); } // ch:选择设备并创建句柄 | en:Select device and create handle int index = 0; nRet = MV_CC_CreateHandleByGenTL(&handle, m_stDeviceList.pDeviceInfo[index]); if (MV_OK != nRet) { printf("Create Handle fail! nRet [0x%x]\n", nRet); } // ch:打开设备 | en:Open device nRet = MV_CC_OpenDevice(handle); if (MV_OK != nRet) { printf("Open Device fail! nRet [0x%x]\n", nRet); }

基于工业相机SDK枚举相机

// ch:枚举设备 | Enum device MV_CC_DEVICE_INFO_LIST stDeviceList; memset(&stDeviceList, 0, sizeof(MV_CC_DEVICE_INFO_LIST)); nRet = MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_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 break; } PrintDeviceInfo(pDeviceInfo); } } else { printf("Find No Devices!\n"); break; } printf("Please Input camera index(0-%d):", stDeviceList.nDeviceNum-1); unsigned int nIndex = 0; scanf_s("%d", &nIndex); if (nIndex >= stDeviceList.nDeviceNum) { printf("Input error!\n"); } // ch:选择设备并创建句柄 | Select device and create handle nRet = MV_CC_CreateHandle(&handle, stDeviceList.pDeviceInfo[nIndex]); if (MV_OK != nRet) { printf("Create Handle fail! nRet [0x%x]\n", nRet); } // ch:打开设备 | Open device nRet = MV_CC_OpenDevice(handle); if (MV_OK != nRet) { printf("Open Device fail! nRet [0x%x]\n", nRet); }

可以对比上面两段代码,在相机打开前,仅少量接口存在差异性,opendevice之后,相机操作,图像获取完全一致,代码开发量较少

3.2 基于采集卡SDK进行二次开发

优点: 能够完全访问控制采集卡所有参数,使用采集卡所有功能 缺点: 1.从0开发,全新理解sdk接口,开发量有点大 2.接口仅能兼容海康采集卡,其他品牌采集卡无法兼容 在这里插入图片描述

采集卡接口调用框架图,白色区域为采集卡相关接口,浅蓝色区域为相机相关接口,浅红色区域为流相关接口,浅绿色为缓存相关接口,绿色区域为用户自定义操作

示例程序路径:C:\Program Files (x86)\MVS\Development\MVFG 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3