海康威视工业相机SDK的开发使用笔记

本文档记录了在Ubuntu16.04环境下,使用海康威视MVS SDK进行C接口开发的过程,包括设备连接、图像主动取流、参数设置以及图像转换为Mat和QImage格式,适用于后端开发人员学习和参考。
摘要由CSDN通过智能技术生成

环境说明:Ubuntu16.04
海康威视SDK包:MVS-2.1.0_x86_64_20201228.tar.gz

如若在Windows环境下配合Visual Studio使用请移至
海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一)
海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(二)

记录自己的学习过程,方便以后查阅,若有错误或遗漏,欢迎大佬指正补充。

在这里插入图片描述

这里写目录标题

1.准备

首先是安装海康威视的MVS软件,VMware虚拟机中Ubuntu16.04系统下通过MVS运行海康威视工业相机

1.1 相关资料

  • 工业相机SDK(C)开发指南
    这是最重要的资料,里面有(环境配置:SDK编程环境配置,包括网络配置、驱动安装等)、(编程导引:相机连接流程和取图方式介绍)、相机的常用节点等等。
    在这里插入图片描述
    在这里插入图片描述
  • 相机的常用节点查询
    这部分主要是用于SDK提供API接口中的参数设置,如设置曝光模式、曝光值、增益模式、增益值、外触发等等。
    在这里插入图片描述
    根据我实际开发过程中常用的相机节点值如下:
    在这里插入图片描述
  • CameraParams.h:包含编程需要的所有结构体、宏定义和枚举量
  • MvCameraControl.h:包含所有控制相机的API接口
  • 相关示例程序
    在这里插入图片描述

1.2 Debug常备

如果遇到问题,比如相机未正常打开、相机无法取图等等,及时打印每次调用SDK接口返回的输出值,对照错误码定义去排查问题(记得将输出值转化为十六进制)事半功倍。

如果函数正常完成而没有检测到任何错误,则返回值为MV_OK,否则返回错误码 。
在这里插入图片描述

2.通过海康相机SDK熟悉C接口取图流程和取图方式

个人总结:句柄(void *handle)是相机开发中重要的一环,SDK中的接口中,大部分都是针对句柄的操作,如果有多个相机,要将每个相机和其对应的句柄关联好,防止后期使用的过程中未及时释放句柄、造成混乱等。

2.1 设备连接接口流程

对设备进行操作,实现图像采集、参数配置等功能,需要先连接设备(打开设备),具体流程如下图所示:
在这里插入图片描述
1.调用 MV_CC_EnumDevices() 枚举子网内指定传输协议对应的所有设备。可以通过 pstDevList 在结构 MV_CC_DEVICE_INFO_LIST 中找到设备的信息。
在这里插入图片描述

#include "MvCameraControl.h"

void main()
{
    unsigned int nTLayerType = MV_GIGE_DEVICE | MV_USB_DEVICE;

    MV_CC_DEVICE_INFO_LIST m_stDevList = {0};
    int nRet = MV_CC_EnumDevices(nTLayerType, &m_stDevList);
    if (MV_OK != nRet)
    {
        printf("error: EnumDevices fail [%x]
", nRet);
    }
}

关于搜索到的所有相机设备信息在 MV_CC_DEVICE_INFO_LIST结构体中,

/// ~chinese 设备信息列表    ~english Device Information List
typedef struct _MV_CC_DEVICE_INFO_LIST_
{
    unsigned int        nDeviceNum;                         ///< [OUT] ~chinese 在线设备数量       ~english Online Device Number
    MV_CC_DEVICE_INFO*  pDeviceInfo[MV_MAX_DEVICE_NUM];     ///&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值