边干边学机器视觉——图象采集部分下jing
zju@gmail
com边干边学机器视觉——图象采集部分下jing
zju@gmail
1多缓冲区采集方式从前面的章节中,我们学会了如何采集图象
在高速图象采集应用中,我们会发现前面的Grab方式会存在一个问题,即当图象采集速度非常高时,处理程序还来不及处理当前的图象,图象缓冲区里面的数据已经被新的图象数据所覆盖了
为了解决采集缓冲区不足的问题,我们很自然的想到一个解决方案——增加图象采集缓冲区
NI-IMAQ提供了两种多缓冲区的方式,一种是Sequence,另一种是Ring,如图3
1多缓冲区图象采集方式Sequence和Ring都是多缓冲区图象采集方式,它们的区别是,Sequence是单次采集,而Ring是连续采集,类似Snap和Grab
在Ring方式下,当一个buffer中的数据正在被处理时,新采集到的图象数据会更新到另外的Buffer中去
下面本文将依次介绍Sequence和Ring的实现方式
1Sequence图象采集方式Sequence图象采集方式由IMAQSequence
vi实现,如图3
2IMAQSequence
viIMAQSequence
vi最重要的参数是ImagesIn,如图3
ImagesIn是一个图象数据缓冲区引用数组,里面包含了多个由IMAQCreate
vi创建的图象数据缓冲区的引用
只边干边学机器视觉——图象采集部分下jing
zju@gmail
com有知道多个图象数据缓冲区在哪里,IMAQSequence
vi才能完成多缓冲区模式的图象采集
3IMAQSequence
vi参数Sequence图象采集方式的完整实现,大家可以参考范例程序中的HLSequence
vi,如图3