注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
来源:NI中国官方网站
问题:我注意到如果在Measurement and Automation Explorer中开始一个Grab采集,我可以改变采集参数,然后在Grab的过程中他们就会自动更新。
然而,如果在一个VI中创建一个使用IMAQ属性节点的while循环,并且在Grab采集过程中通过输入控件改变参数值,这些参数并不会得到更新。 为什么会出现这种情况?如何才能在图像采集过程中使参数得到更新呢?
解答:一旦LabVIEW开始了一个Grab采集,或者换句话说一旦IMAQ Grab Setup被调用,所有的采集参数就被设置好了。因此Grab开始之后就不能修改参数(这里NI介绍有点不正确,不能修改的是属性参数中的固定项目,例如采集属性acquisition attributes中的超时、数据包尺寸之类的,而使用相机引用中的相机属性camera attributes中的激活属性activeAttribute设置的属性,如曝光时间、增益、触发等,则是可以实时修改的)。与之相比,Measurement and Automation Explorer事实上是在后台停止了采集,修改参数,然后重新开始采集。这样看上去就是能在采集过程中修改参数。
因为LabVIEW不会自动这样做,您可以自己再创建一个循环来检查输入控件值的改变。一旦检查到改变,就通过IMAQ Stop停止采集并读取新的参数。然后再次调用IMAQ Grab Setup应用新的参数。
配置好Grab采集之后,通过IMAQ Grab Acquire在while循环外采集一帧图像。在第一次循环中,通过IMAQ Stop停止采集并且更新黑白参考电平的属性值。接下来,分别调用IMAQ Grab Setup和IMAQ Grab Acquire应用这些参数并采集一帧图像。在接下来的循环次数中,使用一个"不相等"比较函数和移位寄存器检查White and Black Reference控件的值。如果检测到变化就停止采集并且更新相关参数,否则就直接将图像和会话引用直接传递通过Case结构。
|