要使用海康的工业相机SDK,要先下载 机器视觉工业相机SDK V3.2.0版本Runtime组件包,这里面包含了相机的所有运行时库,安装后运行时环境在C:\Program Files (x86)\Common Files\MVS目录下,里面包括了各种海康SDK运行时库以及GenICam相关的库文件。
下载MVS和SDK
下载机器视觉工业相机客户端MVS3.1.0后安装,其实MVS是根据相机SDK做的一个应用软件开发,注意安装的时候选择开发者模式。安装好后在目录下D:\ProgramFiles\MVS\MVS\Development中有SDK开发相关文档

Development目录
Bin 下为C#写的一个demo。Documentations中为各种示例,DotNet为调用的程序集, 分为32、64、AnyCPU的程序集,这个程序集就是把C接口通过DllImport转到C#调用的简单封装,Includes为C++开发所需要的头文件,Libraries为C++开发的库文件,Samples中为各种编程语言以及常用的算法工具(Halcon\Opencv\LabView)提供的demo,ThirdPartyPlatformAdapter为其他第三方算法工具提供的驱动,可以通过对应的算法工具取流。
在这里我以C接口代码说明,C接口和C#接口不同就是,在接口后面增加了一个_NET,我一般使用C接口方式。
设备连接流程设备连接流程
主动取流流程主动取流需要调用 MV_CC_GetOneFrameTimeout接口主动获取图像数据,我一般是开一个线程,在接收到下位机信号后调用这个接口,然后加入到缓存,供算法调用。
主动取流
回调取流流程回调取流通过MV_CC_RegisterImageCallBackEx把数据通过回调函数给到注册者。
回调取流
以MV_CC_Set或MV_CC_Get的第一个参数是一个字符串类型的,这个类型是相机的一个属性,可以在Documentations\MvCameraNode.xlsx中查找,比如ExppsureTime为曝光节点,数据类型是Float,单位是微秒,R/W为此特性可读可写,这个特性是GenICam中规定的。
对开发者来说,这些特性在MVS中右侧的属性树中查看到,如果想看更多的知识,如下是我自己本地的一个虚拟相机,右侧的属性是我虚拟相机根据GenICam来进行写的一个XML描述文件,正常来说,相机的XML描述文件有一万多行,MVS和SDK中只会把一部分属性列举出来,并非所有属性。
MVS枚举虚拟相机
相机XML描述文件