LVision-为何在LabVIEW的Grab采集中无法更新IMAQ属性,但在MAX中却可以?
来源: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结构。
好资料!好好学 啥也不说了,楼主就是给力! 支持石鑫华视觉,支持机器视觉论坛! 问题才是我们前进的动力 机器视觉,专业的石鑫华视觉http://shixinhua.com,专业的机器视觉论坛http://visionbbs.com 好东西。。。。。。。。。。。:$
页:
[1]