采集相关文章(单次-IMAQ图像数据采集方式(IMAQ.vi))

优采云 发布时间: 2021-12-10 21:11

  采集相关文章(单次-IMAQ图像数据采集方式(IMAQ.vi))

  当使用单个 采集 图像时,通常使用 Snap.vi 进行编程。,如果继续采集,我们会想到下面的模式。?折断

  但是,在上图的模式下,采集镜像比较慢,因为Snap.vi包括初始化和关闭,最快的情况下需要120ms。为了解决这个问题,NI添加了Grab.vi来实现连续采集。框图如下:

  ?抓

  在这种情况下,下一帧数据大约需要 40ms。

  ? 但是在高速图像采集的应用中,我们会发现之前的模式也会存在一定的问题,就是当图像采集速度非常高时,处理程序太处理当前图像较晚,图像缓冲区中的数据已被新的图像数据覆盖。

  为了解决采集缓冲区不足的问题,我们可以增加图像采集的缓冲区。

  NI-IMAQ 提供了两种多缓冲方法,即序列和环。

  ?序列和环

  Sequence和Ring都是多缓冲图像采集的方法,区别在于Sequence是单个采集,Ring是连续的采集,类似于Snap和Grab。

  Sequence.vi最重要的参数是Imahes In,它是一个图像数据缓冲区引用数组,其中收录对Imaq Create.vi创建的图像数据缓冲区的多个引用。只有知道多个图像数据缓冲区在哪里,IMAQ Sequence.vi 才能完成多个缓冲区的图像采集。

  ?序列应用:

  ?序列应用

  环图采集方法(IMAQ方法,IMAQdx不一样):

  Ring image采集方法需要通过三个VI来实现,分别是IMAQ Configure List.vi?、IMAQ Configure Buffer.vi和IMAQ Extract.vi。

  ?IMAQ Configure List.vi 完成缓冲区列表的配置,告诉驱动程序缓冲区的数量,是否连续或单次执行图像采集以及缓冲区的位置。

  ?IMAQ Configure Buffer.vi 将创建的图像缓冲区分配到缓冲区列表中的相应位置。

  ?IMAQ Extract Buffer.vi 从缓冲区中提取采集 接收到的图像,为后续的图像处理做准备。

  如下图(因为图太长,只截取了关键代码)?

  ? 第一步是调用IMAQ Configure List.vi,告诉驱动以连续的方式镜像采集,缓冲区的位置在系统中——即开发参考程序的主机。

  第二步是调用?IMAQ Configure Buffer.vi 将创建的图像缓冲区与缓冲区列表中的相应位置关联起来。

  ?第三步调用IMAQ Start.vi启动一个image采集的进程。需要注意的是,在调用IMAQ Start.vi之前,必须先调用IMAQ Configure List.vi和IMAQ Configure Buffer.vi来配置采集的过程。

  第四步是调用?IMAQ Extract Buffer.vi 从缓冲区中提取图像。

  第五步,将IMAQ Extract Buffer.vi的Buffer to Exact参数设置为-1?表示释放当前提取的缓冲区。IMAQ Extract Buffer.vi在提取图像数据时会保护当前提取的缓冲区,所以当采集过程完成后,需要释放当前保护的缓冲区。

  Ring image 采集的主要过程如上所述,剩下的步骤就是熟悉的初始化采集硬件、释放图像采集硬件和释放缓冲区。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线