石鑫华视觉 手机微信QQ:13450001061

视觉教程

NI驱动相机采集图像指南

文章来源:本站时间:2022-03-07 10:59:34 点击:2782

NI驱动相机采集图像指南 - 封面750.jpg

淘宝购买链接
NI驱动相机采集图像指南
https://item.taobao.com/item.htm?id=533947215894


目录
NI驱动相机采集图像指南    5
版权声明         5
读者利益         5
感谢         5
前言         6
第1章 NI IMAQdx函数驱动相机采集图像         7
1.1 IMAQdx常用函数     7
1.1.1 IMAQdx Enumerate Cameras枚举相机         8
1.1.2 IMAQdx Open Camera打开相机  14
1.1.3 IMAQdx Configure Grab配置抓取         19
1.1.4 IMAQdx Grab抓取 21
1.1.5 IMAQdx Close Camera关闭相机  27
1.1.6 IMAQdx Snap拍照          30
1.1.7 IMAQdx Sequence序列 35
1.1.8 IMAQdx Enumerate Attributes枚举属性      37
1.1.9 IMAQdx Enumerate Video Modes枚举视频模式          43
1.1.10 IMAQdx Discover Ethernet Cameras发现以太网相机       54
1.1.11 IMAQdx Reset Ethernet Camera Address重设以太网相机地址        55
1.1.12 Property Node相机属性节点     57
1.2 IMAQdx Low-Level低级函数    94
1.2.1 IMAQdx Configure Acquisition配置采集       95
1.2.2 IMAQdx Start Acquisition开始采集       99
1.2.3 IMAQdx Get Image获取图像         101
1.2.4 IMAQdx Stop Acquisition停止采集       104
1.2.5 IMAQdx Unconfigure Acquisition取消配置采集  107
1.2.6 IMAQdx Get Image Data获取图像数据        109
1.2.7 IMAQdx Configure Ring Acquisition配置循环采集       112
1.2.8 IMAQdx Extract Image提取图像  117
1.2. 9 IMAQdx Release Image释放图像         121
1.2.10 IMAQdx Read Register读寄存器         124
1.2.11 IMAQdx Write Register写寄存器        126
1.2.12 IMAQdx Read Memory读存储器         134
1.2.13 IMAQdx Write Memory写存储器       137
1.2.14 IMAQdx Read Attributes读属性 141
1.2.15 IMAQdx Write Attributes写属性         147
1.3 相机采集图像实例 153
1.3.1 LabVIEW中连续采集图像    153
1.3.2 LabVIEW中连续保存图像    154
1.3.3 LabVIEW中如何实现软件触发采集图像    157
1.3.4 LabVIEW中如何实现外部IO触发相机采集图像       159
1.3.5 AVT Stingray系列工业相机硬件触发  163
1.3.5 AVT Guppy Pro系列工业相机硬件触发       168
1.3.7 大恒水星千兆网工业相机MER-132-30GC硬件触发         173
1.3.8 大恒水星千兆网系列工业相机实用采集程序  177
1.3.9 Basler acA1300-30GM使用硬件触发驱动程序   198
1.3.10 Basler acA2500-14GM使用IO触发驱动程序   206
1.3.11 Basler piA2400-17GM硬件触发驱动 208
1.3.12 映美精DMK 23G274硬件触发驱动 216
1.3.13 SVS ECO815MTLGEC硬件触发驱动    223
1.3.13 SVS ECO815MTLGEC硬件触发驱动    230
1.3.14 大恒水星USB3.0系列工业相机实用采集程序        237
1.4 LaVIEW中使用快速VI采集图像    256
1.4.1 选择采集源Select Acquisition Sources        258
1.4.2 选择采集类型Select Acquisition Type         259
1.4.3 配置采集设置Configure Acquisition Settings      260
1.4.4 标准工业相机属性介绍       262
1.4.5 选择控件与指示器Select Controls/Indicators    268
1.4.6 视觉采集向导生成LabVIEW快速VI  268
第2章 DLL动态链接库驱动相机采集图像        274
2.1 大恒图像HV系列相机DLL驱动采集图像   274
2.1.1 LvGetDeviceTotal函数   275
2.1.2 LvOpenDevice函数         277
2.1.3 LvAllocateResources函数       279
2.1.4 LvSetResolution函数      280
2.1.5 LvSetSnapMode函数      283
2.1.6 LvSetGain函数        286
2.1.7 LvGetImageWidth函数  289
2.1.8 LvGetImageHeight函数 291
2.1.9 LvSetAOI函数         291
2.1.10 LvSetShutter函数          296
2.1.11 LvSetADCLevel函数      299
2.1.12 LvSetTimeout函数        302
2.1.13 LvGrabSingle函数         304
2.1.14 LvExportImageData函数     309
2.1.15 LvStartGrab函数 310
2.1.16 LvStopGrab函数  312
2.1.17 LvCloseDevice函数       314
2.1.18 函数使用简要说明     316
2.1.19 调用驱动采集实例     317
2.2 大恒图像水星MER系列相机DLL驱动采集图像         323
2.2.1 大恒水星相机整体工作流程       324
2.2.2 功能控制流程图  325
2.2.3 函数接口说明       325
2.2.4 单相机综合采集实例  387
2.2.5 双相机综合采集实例  388
第3章 ActiveX驱动相机采集图像      389
3.1 使用VideoCapX驱动相机采集图像       389
3.1.1 VideoCapX注册安装方法      389
3.1.2 VideoCapX使用方法      395
3.2 映美精相机使用ActiveX驱动        401
3.2.1 Deveice Setup硬件设置         404
3.2.2 IMAQ Image在IMAQ中获取图像        418
3.2.3 LabVIEW Picture在LV图片控件中显示图像       424
3.2.4 Property IMAQ属性设置       427
3.2.5 Property属性          433
3.2.6 Serials获取序列号         433
3.2.7 Trigger IMAQ触发 436
第4章 相机驱动与图像采集中常见问题  438
4.1 NI MAX中无法找到相机 439
4.1.1 WIN7中大恒HV USB2相机在MAX中无法找到         439
4.1.2 WIN7中大恒水星MER USB2相机在MAX中无法找到     439
4.1.3 映美精千兆网相机在MAX中无法找到     447
4.1.4 大恒水星千兆网相机在MAX中无法找到 452
4.1.5 已经安装IMAQ for USB Cameras仍找不到USB相机        457
4.1.6 找不到1394B口AVT相机  459
4.2 映美精千兆网相机在MAX中无法采集图像         469
4.3 映美精千兆网相机在MAX中采集图像有黑线花屏    480
4.4 大恒千兆网相机在MAX中无法采集图像    481
4.5 大恒水星MER-USB3.0相机在MAX中驱动未关联      484
4.6 MAX中只能识别一台大恒水星USB2相机    487
4.7 MAX中大恒水星USB2黑白相机采集的是彩色图像    487
4.8 相机不能调整视频模式Video Mode     488
4.9 为什么一台相机在MAX中有两台不同名称相机         488
4.10 两台USB相机连接电脑同一时间只有一台能工作   489
4.11 LabVIEW中能使用安防监控网络摄像机吗?     489
4.12 已经安装VAS但在LabVIEW中没有函数选板   490
4.13 一块2端口的1394卡能带2台相机同时采集图像吗?  491
4.14 一块4端口的千兆网卡能带4个相机同时采集图像吗?         491
4.15 如何降低相机的分辨率提高采集速度        491
4.16 利用Format7视频模式可以改善图像质量吗?         497
4.17 NI-IMAQdx是否支持通过GigE交换机连接多个相机?     499
4.18 相机运行一段时间后掉线找不到相机        500
4.19 映美精相机使用中丢帧        501
4.20 相机采集图像很慢        501
4.21 LabVIEW中如何使用NI IMAQdx不支持的相机?      501
4.22 使用4口Intel芯片网卡连接3个相机时有一个相机会自动断线   502
4.23 相机演示程序无法使用或不兼容        502
4.24 AVT GPY F503B采集速度达不到额定的帧率        504
4.25 相机采集图像全黑        505
4.26 大恒USB2.0接口相机采集图像是灰色的  505
4.27 大恒USB2.0接口相机采集时丢帧      506
4.28 怎么利用触发来拍照   506
4.29 相机采集得到的图像倾斜变形严重   506
4.30 相机采集得到的图像非常模糊   507


NI驱动相机采集图像指南

版权声明

尊敬的读者,当您看到本页时,表示您已经获得了NI驱动相机采集图像指南》的相关版本(电子书等形式)。无论您从何渠道获得本书,您仅拥有阅读权,本教程著作权归石鑫华所有,未经石鑫华同意,您无权将本教程用于出版、印刷、转售、淘宝、复印、扫描、网络发布等。为了维护作者的权益,分发给您的复本可能是加密的PDF文档或防复制U盘等,可能无法用于打印、复制等,其中的图片也有可能包含水印等情况,敬请谅解!请尊重作者的劳动成果,盗版必究!


NI驱动相机采集图像指南》著作权作品登记证书

NI驱动相机采集图像指南》著作权作品登记样品

读者利益

亲爱的读者同志,当您通过正规渠道获得NI驱动相机采集图像指南》的复本时,表示您遵守了相关的法律法规。同时也表示了您对知识产权的承认以及对原作作者的尊重。

为了提升正版阅读体验,在您购买本书时,可在作者网站http://shixinhua.com/bbs/论坛中注册相关ID,并通知作者,作者将为您提高相应的权限,以查看、下载论坛有限制的阅读内容。同时,您将可以获得优先的技术支持。您通过石鑫华视觉网(http://shixinhua.com)可以了解到,作者在机器视觉行业还算有较丰富的应用经验,对于初学者或者是对机器视觉了解不深的工程师,或者可以提供一些必要的帮助,让您可以少走许多弯路,更快的掌握知识,更高效的完成您的机器视觉案例。

感谢

首先,感谢您支持作者。您是上帝,您的支持就是作者前进的动力。因此要特别感谢。

其次,感谢NI。因为NI为我们提供了这么好的视觉应用软件,可以非常快的设计验证视觉项目,了解机器视觉与图像处理。

第三,感谢MV。没有MV,我们大家也不会走进机器视觉这个圈子。因此我们大家都要感谢MV

第四,感谢家人。没有家人的支持,就没有时间来创作。

第五,感谢自己。在面对盗版横行,自己仍然有毅力将作品创作完成,为中国机器视觉发展添砖加瓦,值得感谢!

前言

本教程是基于NI LabVIEW2014 SP1版进行开发的。其中使用的视觉采集软件VAS以及IMAQdx驱动是2015.02版本的。因此其中的源代码如果需要打开,至少需要安装LabVIEW2014版本或以后的版本才可以。

本教程第一章主要介绍了NIIMAQdx驱动程序各个函数的使用方法,以及国内主流相机的图像采集驱动的编写方法以及采集图像实例。第二章介绍了一些使用DLL方式驱动相机采集图像的相机的使用方法。第三章介绍了AcitveX方式驱动机机采集图像的方法。第四章则分离了一些作用实际使用各种相机遇到的一些问题与解决方法。内容都是原创性质且有非常高实用价值的知识点。

学习本教程后,可以使用国内外主流的相机进行驱动采集图像,如AVTBASLER、映美精、大恒图像、JAISVS等等。

工业相机品牌国内外数百种。对于NIIMAQdx来说,只要相机支支持标准的视觉协议,如GENICAMGIGEVISIONUSB3VISIONDirectShow等标准本协议,理论都可以通过IMAQdx进行驱动。所以本书也只能使用一些应用较多的相机进行举例,不能对所有相机的驱动讲解到。

而第二章、第三章所使用的方法,则相对更少一些。也只能选择有代表性的相机进行举例。

对于第四章中的常见问题,也只能列举一些常见的问题点进行介绍。而实际应用中,可能会遇到更多的异常情况。这些异常情况,更多的是需要依靠自己或相机厂家的技术支持来解决。

欢迎大家相互讨论,共同进步。您在阅读过程,如果发现有书写错误或解释不正确的地方,也请多多指正。

1 NI IMAQdx函数驱动相机采集图像

NI IMAQdx图像采集函数,是专门用于采集图像的,是一套相机驱动。利用此驱动程序,可以驱动多种品牌的工业相机,如AVTBaslerJAITELISONYThe Imaging SourcePointGreyIDSSVSSmartekDalsa等国际知名品牌,也可以驱动如大恒等国产品牌。只要工业相机支持标准的相机协议即可被支持,如常规的USB3VISIONGIGEVUSIONIIDCDirectX等。

当然NI的相机驱动程序不只有IMAQdx,另外还有IMAQVision RIO以及早期版本还有一个IMAQ for USB。不过对于我们常规的工业相机,IMAQ是不适用的,这个驱动一般是适用于NI的图像采集卡,如Camera Link卡等;VISION RIO则是适用于NI的嵌入式视觉系统的,这些都需要NI的硬件支持才可以玩得转;而早期的IMAQ for USB则适用于LabVIEW8.6平台上的USB接口相机(也只是部分支持、大部分的国产USB相机不支持)。而现在这个IMAQ for USB驱动已经集成在IMAQdx中,所以NI的相机驱动程序,只介绍NI IMAQdx选板中的函数。

NI相机驱动程序

    NI相机驱动程序需要安装NI Vision Acquisition SoftwareVAS)软件才会出现在LabVIEW中,并且需要对应版本才OKVAS软件一般一年会更新两次,一次在2月分,一次在8月分。2月份的那个版本,通常是不支持当年的LabVIEW版本,而只是支持上一年的SP1版,如VAS2015.02,则不支持LabVIEW2015,而只支持LabVIEW2014SP1。要使用VAS2015.08才可以支持LabVIEW2015

1.1 IMAQdx常用函数

IMAQdx中有比较常用的一些函数,另外还有一组低级函数以及一组FPGA函数。本书中对于FPGA函数功能不做介绍,因为这个需要FGPA来支持,作者也未曾一试,只能忽略不计。

NI IMAQdx函数选板

    IMAQdx中的常用函数的介绍,我们不一定按照从左到右从上到下的顺序介绍。而是按照一般的采集图像顺序,如枚举相机、打开相机、设置属性、配置相机、采集、关闭这样的顺序进行介绍。

1.1.1 IMAQdx Enumerate Cameras枚举相机

IMAQdx Enumerate Cameras枚举相机函数在程序框图选板中的位置

IMAQdx Enumerate Cameras枚举相机函数功能与说明

枚举相机函数,主要罗列出系统中所有支持的相机。这里支持的相机,是指IMAQdx能识别到相机接口的相机,但是这些罗列出来的相机,并不一定都能采集到图像,因为有些相机虽然可以读取到型号接口名称,但是并不完全被支持,也是无法采集图像的。下面来看一下其接线端。

仅连接Connected Only?(Yes)这个选项用于决定枚举相机的方式,如果仅连接为真,则罗列已经连接到当前系统的相机。如果仅连接为假,则罗列所有当前连接到系统的相机以及以前曾经连接到系统的相机。

错误输入Error in这个是LabVIEW函数的常规接线端,用于传递错误信息的。通常如果错误输入有错误信息传递进来时,当前的函数是不执行的。错误输入、输出是一个簇控件,包含了状态Status、代码Code、源Source三个元素。

相机信息数组Camera Information Array相机信息数组是一个在当前系统中的接口文件(.IID.ICD文件)的数组。其中可以包含当前连接到系统的相机或以前连接的。数组的元素是一个包含11个元素的簇。其中包含了以下的信息:

类型TypeU32整形):类型的值为3。这个指明了当前的NI-IMAQdx接口文件。

版本VersionU32整形):接口文件的版本。这个序号一般是随着不同版本驱动接口文件格式的改变而增长的。LabVIEW20142015等版本,均为2

标志FlagsU32整形):是当前接口状态的位掩码。如果0位是开的,即标志值为1,则当前接口表示相机是已经连接到系统的。如果0位是关闭的(值为0),则表示已经断开连接的相机。

高位序列号Serial Number HighU32整形):是接口相机的高32位序列号。每个相机都有一个唯一的序列号。

低位序列号Serial Number HighU32整形):是接口相机的低32位序列号。NI官方解释说:每个相机都应该有不同的高位序列号和不同的低位序列号。这种解释法是一点问题,很多相机的不一定有这么多位的序列号,因此很可能是没有高位的(值为0),也有可能很多相机的高位其实是一样,仅仅只是低位的值不一样罢了。所以应该是相机本身有唯一的序列号(仅限同一公司的有不同的序列号,而且序列号是可以设置成一样的,需要相机厂家进行相关的设置)。

总线类型BusTypeU32整形):表示相机的总线类型。常见的几各路总线类型如1394B接口代码为31333934USB2.0接口代码为64736877、千兆网接口代码为69707634

接口名称Interface Name(字符串):是当前相机接口的名称,具有唯一性。可以使用此名称来打开相机。即可以通过枚举相机函数再索引数组再按名称解除捆绑得到接口名称,然后再连接到Open Camera函数来打开相机。

供应商名称Vendor Name(字符串):是接口指定相机的供应商名称。不同的品牌相机的供应商名称是不一样的。

模型名称Model Name(字符串):是接口指定相机的模型名称(即系列名称,每个厂家的相机可能有很多个系列,如AVT的就有Guppy ProStingray等多个系列)。每个相机可能有相同的模型名称,也有不同的模型名称,如AVT Guppy Pro F-125BAVT Guppy Pro F-503B,则有相同的模型名称,而AVT Guppy Pro F-125BAVT Stingray F-125B则有不同的模型名称。不同相机品牌之间相机模型名称的情况比较少,同一品牌则会有相同的模型名称的相机。

相机文件名称Camera File Name(字符串):当前接口使用的相机文件的名称。这些文件即.icd文件。相机文件包含了给定相机所有的设置。用户可以通过MAX配置并保存相机文件。

相机属性网址Camera Attribute URL(字符串):描述相机属性的XML文件的网址。

错误输出Error Out:用于传出错误的控件,如果当前函数在执行时发生错误,则会传递出错误。与错误输入控件的描述是一样,只是其为输出。因为错误输入与输出接线端有相同的描述与作用,在后面的所有函数中将不再介绍。

    下面来看一下枚举相机函数的具体用法:

仅连接为真时枚举相机

当仅连接为真时,则仅枚举了当前连接的相机,从中可以看到连接了三个相机,分别为AVTGuppy Pro F503BGuppy Pro F201B和大恒图像的一台水星相机。可以看到这三台相机的标志Flags都为1

仅连接为假时枚举相机

仅连接为假时的枚举相机,则罗列了所有曾经在系统中连接过的相机,共有32枚相机。从中看到,很多相机的标志Flags0

仅连接为假时枚举相机

仅连接为假时枚举相机

仅连接为假时枚举相机

即使两个同样型号的相机,如AVT Guppy Pro F-201B,也会因为其序列号不同,而会有两个接口文件,这样才能正常区分两个相机。

两个相机型号的相机有不同的接口文件

    但是这种情况并不是绝对的,就如大恒图像的水星相机,就无法正常的区分多个相机,这里的情况可能是无法正常的读取其序列号而造成仅使用了一个接口文件。因此大恒图像的相机在使用NIIMAQdx驱动时,一个系统只能识别一台相机。要想识别多台相机,则需要使用大恒图像的DLL进行驱动才可以。

当有错误输入时函数不执行

   当有错误输入时,函数将不执行,而会直接传递错误。


首页
84162741QQ
联系