在LabVIEW中实现连续采集图像是很简单的一件事。连续采集中没太多难点,只要连续重复的执行采集Grab函数就可以。下面来看一下其程序框图:
LabVIEW中实现连续采集图像
程序框图其实是很简单的,执行的过程大概是这样:首先打开相机,然后配置相机准备采集图像。再使用一个WHILE循环结构,来控制连续采集,其中放置了Grab函数。这样就可以在WHILE中实现连续采集。只要停止While循环,就可心停止连续采集了。停止连续采集后,则执行关闭相机和释放图像缓存。
在Grab函数后,还放置了一个Vision Acquisition CalculateFPS.vi函数,用于计算当前的采集速度。这个函数是在NI视觉中自带,但是在面板中并没有包含。具体可以查看本论坛帖子:
【LVision】NI LabVIEW Vision计算帧率VI_视觉开发模块NI Vision_编程|图像处理|机器视觉_机器视觉论坛_石鑫华视觉网_商城_方案_系统_光源_控制器_工业相机_镜头_石鑫华视觉网_华视自动化
http://labviewvision.com/ thread-248-1-1.html
在实际应用程序中,基本的思路也是这样的,只是可能会将打开相机、配置相机、采集图像、关闭相机等操作过程,放置在不同的执行环节,以方便程序操作。如打开相机一般会放在程序的初始化中。连续采集图像,则会放在自动运行过程中。关闭相机则放在程序退出环节中。这里可以使用移位寄存器来控制引用,也可以使用子VI,使用状态来机操作。
当然还可以改进成点击按钮则连续采集,停止则不连续采集,再点击又可以连续采集的功能。不过这样的功能,就需要使用生产者消费者来实现了。利用事件结构来响应前面板的“采集”按钮,生产者响应点击事件,消费者则执行连续Grab过程。这里的改进,就请各位看观自己学习改进一下。
上图中实现了连续采集,则可以在WHILE循环中,加入其它的处理实现,实现连续采集、分析的功能。
LabVIEW连续采集图像前面板