最近使用LabVIEW对海康机器人的工业相机进行二次开发,没有专门介绍LabVIEW的开发手册,本文就简单的写一写单相机取图显示以及存图的开发步骤。

如果各位是直接使用IMAQdx开发的,可以直接下载文章末尾附件,后续有时间也会出一版使用Imaqx搭建的单相机取图显示、存图以及更改参数的demo,欢迎各位留言交流。

他们的开发程序demo是和MVS客户端绑定的,因此只要在官网上下载了客户端安装后,相应的路径下会有支持各种开发语言的示例程序。观看本文前,强烈强烈强烈建议先看下这篇文章,海康工业相机参数设置与获取。

海康工业相机 opencv 海康工业相机参数设置_python


对应的SDK路径下的示例程序

海康工业相机 opencv 海康工业相机参数设置_c++_02


LabVIEW文件夹内内容如下:

文件夹名称

描述

MvLVLib

封装的子VI(每个子VI都是通过C的dll封装过来的)

Samples

单相机取图显示的程序

TwoCameraSamples

两个相机取图显示的程序

一、前提

本文章主要对单相机取图显示程序进行解释说明,建议开发者在开发之前可以先看看他们的C语言开发指南手册中流程引导说明,具体介绍了相机开发的通用步骤,以及海康工业相机参数设置与获取的文章。

海康工业相机 opencv 海康工业相机参数设置_labview_03

二、自带示例程序介绍

上述流程也是我们引用子VI的流程,前面板如图所示,主要能实现了相机连续取图以及软触发取图。

海康工业相机 opencv 海康工业相机参数设置_c#_04


后面板逻辑主要是根据点击每个按钮后进行不同的操作:

  1. Refresh Devices:EnumDevices.vi枚举电脑连接相机,并区分网口和U口
  2. Open Device:获取相机信息,CreateHandle.vi创建句柄,OpenDevices.vi打开相机
  3. Continuous:SetEnumValue.vi设置触发为OFF
  4. TriggerMode:SetEnumValue.vi设置触发模式为ON,SetEnumValue.vi设置触发源为软触发(7-软触发),为什么7表示软触发,建议观看开头说的设置海康工业相机参数的文章
  5. Start:GetIntValue.vi获取数据包大小(PayloadSize)的值,GetIntValue.vi获取图像格式的值,这两个参数获取在这里只是演示,可以直接不写。StartGrabbing.vi开始取图,使得AcquisisionFlag为正,触发调用GetOneFrameTimeout.vi进行取图。图中的1080001,2180014可查看MVS,即可看到表示的图像格式。
  6. TriggerOnce:SetCommandValue.vi执行软触发命令
  7. Acquisition中的Stop按钮:StartGrabbing.vi停止抓图
  8. CloseDevice:CloseDevice.vi关闭相机,DestroyHandle.vi销毁句柄,

三、如何设置参数及存图

3.1 设置参数

相机参数(曝光、增益、图像格式、触发等等)获取和设置是在打开设备之后,开始取流之前。

海康工业相机 opencv 海康工业相机参数设置_海康工业相机 opencv_05


下图为调用SetFloatValue.vi设置曝光

海康工业相机 opencv 海康工业相机参数设置_c#_06

3.2 存bmp图(调用SaveImageToFile.vi)

海康工业相机 opencv 海康工业相机参数设置_海康工业相机 opencv_07


参考工业相机SD开发指南手册

海康工业相机 opencv 海康工业相机参数设置_c++_08


实际而言,我们只需要知道

参数

描述

nWidth

图像宽度

nHeight

图像高度

pData

图像数据缓存(主动取图接口vi中的 pData Out)

enImageType

保存图像格式 (1-bmp,2-Jpeg,3-Png,4-Tiff)

enPixelType

相机图像格式

nDataLen

数据长度(主动取图接口vi中的 nFrameLen)

海康工业相机 opencv 海康工业相机参数设置_c#_09

四、附件说明

上图所示程序见附件一(链接:https://pan.baidu.com/s/1qAX-8mt3HdMhc3h9ep8KNQ 提取码:z519)

下图Imaqdx程序见附件二(链接:https://pan.baidu.com/s/1KcsWhhOCBvtVtFQej_cutw 提取码:1wfp)

海康工业相机 opencv 海康工业相机参数设置_海康工业相机 opencv_10

五、后记

海康工业相机的示例程序,涵盖的开发语言比较多,但是就LabVIEW而言,目前提供的示例程序较少,欢迎各位大佬不吝赐教。另外也推荐几个博主,个人感觉其开发内容还是不错的。

海康工业相机 opencv 海康工业相机参数设置_c#_11


海康工业相机 opencv 海康工业相机参数设置_python_12