Considerations for Using LabVIEW Queue Functions with the IMAQ Image Data Type

Publish Date: Feb 15, 2018 | 0 Ratings | 0.00 out of 5 | Print | Submit your review


This article provides items to consider when designing a LabVIEW queue to pass IMAQ Image data between parallel loops.

1. Introduction

The IMAQ Image data type created by IMAQ Create is not the actual image data, but rather the temporary memory location where that data is stored.  When you enqueue a particular IMAQ Image value, you are enqueuing a memory location, not image data.

This can cause problems in applications using a producer/consumer architecture to pass image data between acquisition (producer) and processing (consumer) loops.  If the memory location enqueued in the producer loop is overwritten before the consumer finishes processing the image, the image data at that location will be overwritten, changing the image data being actively processed in the consumer loop.

This behavior can be avoided by allocating multiple memory locations prior to execution of the two loops and ensuring that each memory location is not overwritten until the consumer has finished with that data.  The IMAQdx Ring Buffer Producer to Processing Consumer Community Example in the Related Links section below provides a good example of how to avoid overwriting image data in a producer/consumer architecture.


Back to Top

2. Additional Resources


Back to Top

Bookmark & Share


Rate this document

Answered Your Question?
Yes No