LabVIEW利用 IMAQdx 驱动通过编程的方式导入或导出相机的配置文件
以使用ProgrammaticallyGet and Set Attributes with IMAQdx vs. IMAQ for IEEE 1394 中提到的技术来通过编程的方式获取并设置对应相机的独立的属性,但是如果希望将多个属性以一个独立文件的形式来做导入以及导出的操作,具体应该怎么做呢?
解答:
如果希望利用IMAQdx 驱动 API 将一个配置文件导入到一个火线(IEEE 1394) 相机或者千光以太网 (Gigabit) 相机中, 只需要使用 IMAQdx Read Attributes VI.
当第一次将相机连接在电脑上的时候, 一个配置文件将会从相机中被导出来,并且会被存储到 <Shared Documents>\NationalInstruments\NI-IMAQdx\Data 这个文件夹目录下。 这个文件的文件名应该会包括该相机的生产厂家,相机的型号以及相机相关的序列号,所以即使有多个相机的话, 也可以直接通过文件名来确认该相机对应的配置文件。 同时, 这个配置文件也会以 .icd 作为其扩展名,所以可以很容易找到。可以使用任何的文本编辑器来打开相应的属性,比如使用 Microsoft 记事本 (Notepad) 软件。一旦修改了对应的属性并对该配置文件执行保存操作以后,就可以为 IMAQdx Read Attributes VI 提供一个如下图所示的文件路径:
要保存当前相机的设置到配置文件中, 只需要使用 IMAQdx Write Attributes VI 就可以了。
使用NI-IMAQdx编程获取和设置属性
如何使用NI-IMAQdx通过编程设置相机的属性,例如亮度,快门速度和增益等属性?
以前使用IMAQ1394属性节点中的IMAQ1394GetAttribute for C 或 Attr属性设置参数,而最近将用于IEEE 1394的NI-IMAQ模块改为NI-IMAQdx。请问在哪里可以找到NI-IMAQdx中的这些选项呢?
请参阅以下信息,使用LabVIEW编程的方式和使用基于文本语言编程的方式设置摄像机属性。
使用LabVIEW编程
使用IMAQdx属性节点在LabVIEW中设置摄像机属性。要查找IMAQdx属性节点:
导航到视觉与运动(Visionand Motion)功能调色板>> NI-IMAQdx
在程序框图上的放置常规属性节点,右键单击并导航到选择类(Select Class) >> IMAQdx
有关如何配置属性节点的详细信息,请参阅NI-IMAQdx概念帮助文档中的LabVIEW中的摄像机属性 ( NI-IMAQdx概念帮助 >> 在LabVIEW中使用NI-IMAQdx >> 采集类型 >> LabVIEW中的摄像机属性 ) 。该链接可以下载帮助文档。
如果使用的是GigEVision相机,请参阅NI-IMAQdx概念帮助文档中的编程控制相机设置 ( NI-IMAQdx概念帮助 >> 从GigE Vision相机中获取 >>以编程的方式控制相机设置 )。
下图显示了如何配置通过IMAQ1394属性节点的方式与通过IMAQdx属性节点的方式更改摄像机亮度级别的示例。
使用基于文本的语言编程
调用IMAQdxGetAttribute函数来获取特定的属性值或设置。如果不确定属性的确切名称或值,可以调用IMAQdxEnumerateAttributes2和IMAQdxEnumerateAttributeValues来返回此数据。
如果事先不知道可用的属性值的数量,则可以通过完成以下步骤来获取此信息:
调用IMAQdxEnumerateAttributes2函数,并将属性信息数组(attributeInformationArray)参数设置为NULL。然后将必要的大小存储在计数(count)中 。
使用给定大小分配计数(count)。
使用先前分配的数组再次调用此函数
可以通过将列表(list)参数设置为NULL来执行与IMAQdxEnumerateAttributeValues相同的步骤,该参数存储大小所需的大小(size) 。有关将这些函数和其他IMAQdx函数用于基于文本的语言编程的更多信息,请参阅National Instruments\NI-IMAQdx\Docs下的NI-IMAQdx函数参考帮助。
AdditionalInformation
NI-IMAQdx驱动程序允许使用字符串输入动态获取相机属性。这种改变的原因是,调用IMAQ 1394驱动程序,所有摄像机都符合DCAM并具有一组特定的属性。调用IMAQdx驱动程序,还有许多支持的摄像机具有不同的属性。因此,不是枚举特征的集合列表,而是用户必须为其特定的摄像机选择可用的属性。
使用LabVIEW编程时的其他故障排除
如果收到错误信息:相机不支持-1074360305属性( error: -1074360305 attributenot supported by the camera),或者不确定要传递给激活的属性(ActiveAttribute)的属性字符串时,请调用IMAQdx Enumerate Attributes VI提取有关属性的确切字符串的信息,无论该属性是否可读写或是否可作为输入接受的数据类型。
IMAQdx枚举属性VI填充了摄像机的所有可用属性,并可相应地编制索引。根据特定的摄像机显示出来的属性是属性节点接收引用的会话的一部分。
楼主最近还看过