NI-IMAQ Acquisition Types

NI IMAQ

NI-IMAQ Acquisition Types

Four NI-IMAQ image acquisition types are available in LabVIEW: snap, grab, sequence, and ring. The following sections describe each acquisition type and give examples.

Snap

A snap acquires a single image into a memory buffer. Use this acquisition mode to acquire a single frame or field to a buffer. When you invoke a snap, it initializes the device and acquires the next incoming video frame (or field) to a buffer. Use a snap for low-speed or single-capture applications.

Use the IMAQ Snap VI for snap applications. The following diagrams shows a simplified block diagram for using IMAQ Snap.

Grab

A grab is a continuous, high-speed acquisition of data to a single buffer in host memory. This function performs an acquisition that loops continually on one buffer. You can get a copy of the acquisition buffer by grabbing a copy to a LabVIEW image buffer.

You must use two VIs—IMAQ Grab Setup and IMAQ Grab Acquire—for a grab acquisition in LabVIEW. IMAQ Grab Setup, which you call only once, initializes the acquisition and starts capturing the image to an internal software buffer. IMAQ Grab Acquire, which you can call multiple times, copies the image currently stored in the internal buffer to a LabVIEW image buffer. The Immediate? input to IMAQ Grab Acquire determines if the system returns the image currently being acquired or the last completely acquired image. The default value is FALSE, which causes NI-IMAQ to wait until the current image is completely acquired before returning it. A typical application for an immediate transfer is the acquisition of images of stationary objects. After the program finishes copying images, call IMAQ Close once to shut down the acquisition.

The following figure shows a simplified block diagram for using IMAQ Grab Setup and IMAQ Grab Acquire. In this example, you perform an immediate copy by wiring a TRUE to the Immediate? input.

Sequence

A sequence initiates a variable-length and variable-delay transfer to multiple buffers. Use a sequence for applications that process multiple images. You can configure a sequence to acquire every frame or skip a variable number of frames between each image.

Use IMAQ Sequence for sequence applications. IMAQ Sequence starts, acquires, and releases a sequence acquisition. The input Skip Table is an array containing the number of frames to skip between images. IMAQ Sequence does not return until the entire sequence is acquired.

The following figure shows a simplified block diagram for using IMAQ Sequence. Place IMAQ Create inside a For Loop to create an array of images for the Images in input to IMAQ Sequence. To Decimal and Concatenate create a unique name for each image in the array.

Note  Each image must have a unique name.

Ring

A ring initiates a continuous high-speed acquisition to multiple buffers. Use a ring for high-speed applications where you need to perform processing on every image. You must use multiple buffers because processing times may vary, depending on other applications and processing results. You can find an example of a ring acquisition in the <LabVIEW>\examples\IMAQ\IMAQ Low Level.llb file, where <LabVIEW> is the location to which LabVIEW is installed.

You can configure a ring to acquire every frame or to skip a fixed number of frames between acquisitions. In LabVIEW, you must use the NI-IMAQ low-level VIs to perform a ring.