石鑫华视觉论坛

 找回密码
 注册会员
查看: 17261|回复: 4

[原创] NI LabVIEW IMAQdx采集图像

[复制链接]
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 3412 天

    连续签到: 14 天

    [LV.Master]2000FPS

    发表于 2015-3-23 11:56:03 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

    注册登陆后可查看附件和大图,以及购买相关内容

    您需要 登录 才可以下载或查看,没有账号?注册会员

    x
    NI LabVIEW平台是一个很强大的图型化编程平台。NI也为LV平台提供了许多的工具包,其中就包括机器视觉方面的Vision工具包。
    我们使用LabVIEW+Vision工具包编写图像处理软件时,首先就需要采集图像。LabVIEW进行图像采集主要有两种方法,一种是使用工业相机自带的驱动程序,如LabVIEW的驱动、DLL动态链接库等;另一种就是使用NI的IMAQ、IMAQdx驱动进行图像采集。相机自带的驱动我们这里不讲解,因为各个相机厂商自带的驱动也不一样。我们这里讲解一下使用NI IMAQdx驱动进行图像采集。

                                   
    登录/注册后可看大图

    图1、IMAQdx位置

    IMAQdx函数库位于函数>视觉与运动>NI IMAQdx.
    在视觉与运动中,我们可以看到第一个位置还有一个IMAQ的函数库。这个主要是由NI认证过了相机以及NI自己的图像采集卡等使用的函数,都符合DCAM。这样才能使用IMAQ。通常在C:\Users\Public\Documents\National Instruments\NI-IMAQ\Data中有支持的相机参数文件。
    而使用IMAQdx可以支持更多的相机,支持更多的相机属性,而又不需要各个相机都保持统一的属性格式。通常会在C:\Users\Public\Documents\National Instruments\NI-IMAQdx\Data下生成相应的相机属性文件。
    下面来看一下IMAQdx函数面板。第一行的函数:
    第一个Snap为快拍,即为采集单帧;
    第二个configure Grab为配置抓取,即为配置连续采集;
    第三个为Grab为采集,其抓取一张图像,并且可以使用WHILE连续抓取图像;
    第四个为Sequence为序列,可以抓取多张图像,得到图像数组;
    第五个Low-Level为低级函数。可以认为是底层或基本函数,可以使用这些函数完成更灵活的图像采集。IMAQdx面板中的非Low-Level函数基本都以Low-Level函数为蓝本进行整理编写。
    第二行的第一个Open为打开函数。即打开相机,获得相机引用;
    第二个为属性节点,使用相机引用,设置相机属性;
    第三个Close为关闭相机,即销毁相机引用,释放相机资源。
    第三行的第一个Enumerate Cameras枚举相机,即罗列出系统中所有NI支持的相机,并得到相机的所有基本信息;
    第二个函数Enumerate Attributes枚举属性,即罗列出相机的所有支持的属性;
    第三个函数Enumerate Video Modes枚举视频模式,即罗列出相机支持的视频模式,如500万像素的相机支持2588*1940@13FPS,1280*960@30FPS,640*480@60FPS等。
    第四行第一个函数Discover Ethernet Cameras为发现以太网相机,即查找网络上的相机。
    第二个函数Reset Ethernet Cameras Address为重置以太网相机地址。
    下面来看一个具体的采集例子,本例子中系统中共连接了4个AVT Guppy Pro 503B 1394B工业相机(500万像素、CMOS、13FPS):

                                   
    登录/注册后可看大图

    图2 IMAQdx图像采集前面板

                                   
    登录/注册后可看大图

    图3 IMAQdx程序面板

    这个例子中,我们使用了枚举相机、打开相机、属性节点、配置抓取、抓取图像、关闭相机等IMAQdx函数节点。其实,在大部分的项目应用中,我们也只需要这些函数。有些时候连第一个枚举相机都不需要,在打开相机前面直接写接口名如cam0、cam1等即可。本例子可以将上面的VI片段下载然后拖到LabVIEW  2011 SP1的程序面板中具体查看。
    当然修改相机属性,可以使用属性节点进行设置,也可以使用低级函数中的读写属性节点:

                                   
    登录/注册后可看大图

    图4 低级函数节点

    使用低级函数面板中的第三行的两个函数,可以进行相机属性的读取、写入。可以使用Read Attributes读取相机的所有属性,然后修改后,再使用Write Attributes写入属性。使用这两个函数,可以配合C:\Users\Public\Documents\National Instruments\NI-IMAQdx\Data下的相机属性文件进行操作。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-1-20 13:53
  • 签到天数: 26 天

    连续签到: 1 天

    [LV.4]400FPS

    发表于 2015-5-16 10:15:39 | 显示全部楼层 来自:福建省厦门市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-12-14 20:26
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]300FPS

    发表于 2015-5-30 09:34:47 | 显示全部楼层 来自:山东省威海市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-8-9 12:52
  • 签到天数: 307 天

    连续签到: 1 天

    [LV.8]800PFS

    发表于 2015-6-4 06:14:36 | 显示全部楼层 来自:甘肃省天水市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2023-9-4 18:43
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]300FPS

    发表于 2023-8-22 13:45:35 | 显示全部楼层 来自:湖南省长沙市 电信
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    LabVIEW HALCON图像处理入门教程(24.09)
    石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
    《LabVIEW Vision函数实例详解2020-2024》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23/24

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-12-22 23:14

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表