IMAQ Image Display Indicator Changes Throughout VI Execution

Updated Jan 18, 2023

Reported In

Software

  • LabVIEW Full

Driver

  • NI-IMAQ
  • NI-IMAQdx

Issue Details

At the beginning of my program, I write a reference to an IMAQ image to a display indicator and it shows me an image I would expect; however, throughout the course of my execution, the image changes even though I never explicitly write to the display again. How can I prevent this?

Solution

Right-click the Image Display on the front panel and enable the Snapshot option.

Additional Information

In LabVIEW, an IMAQ image is stored in a buffer that you must create explicitly using IMAQ Create. The output of the VI, an IMAQ image reference, is a reference to the buffer in memory where the image is stored. When you wire an IMAQ image reference to an Image Display indicator, the indicator points to the location in memory referenced by the IMAQ image reference and does not make an additional copy of the image. Since images can get large in size, the display process can be sped up by avoiding extra processing steps which make additional copies of the image data.

The indicator is connected to the image that is stored in that buffer. Therefore, if you make changes to the image stored in that buffer later on in your code, you will see those changes reflected in the Image Display when the image refreshes. This includes disposing of the buffer using the IMAQ Dispose, which will cause the image to disappear completely from the display. If the image being displayed has changed in memory since it was last updated, you might also see select portions of the Image Display change as you move the mouse over them, forcing a redraw of the areas it passes through.

If you do not want this feature and would prefer for your indicator to show the image that exists in the buffer only when you write the reference to the indicator, right-click on the control on the front panel and enable the Snapshot option.