07-28-2012 11:13 AM - edited 07-28-2012 11:15 AM
I am using a GigE camera and capturing images using IMAQdx Open Camera.vi, IMAQdx Configure Grab.vi and IMAQdx Grab.vi. This operates within a while loop so each time a trigger (position switch) is sent to the camera I see a new image. The Labview help indicates the GRAB will copy an image out of a ring of buffers. What I don't understand is when I trigger the camera, what signal is telling the grab this is the one I want and to start the while loop processing. Perhaps there is a knowledge base article on this level of detail but I was not able to locate it.
My problem is I am missing images due to the loop time (about 400 ms) being longer than the interval between triggers so I am trying to get a deeper understanding of how the vi's work together. Any suggestions would be appreciated.
08-02-2012 02:44 PM
Have you placed the IMAQdx Open Camera inside the while loop or outside the loop? The Open Camera should only be called once at program initialization and then camera reference can then be passed into the loop. Other than this, I'm not sure why there is such a significant delay between triggers. Can you post a copy of your code?
With regards to your question of how Grab works, I would recommend that you compare the "High-Level Grab.vi" to "Low-Level Grab.vi" in the example finder. IMAQdx Grab is based on another IMAQdx function called IMAQdx get image, which allows you to specify which buffer to return. By default, IMAQdx grab allocates 5 buffers, and will return the latest buffer that is filled by the camera. You will have a lot more control over this process if you work directly with the "IMAQdx Get Image" VI.
08-02-2012 03:36 PM
The IMAQdx Open Camera is outside the loop. However, I tried using the Image Acquisition Express vi and I no longer have the delay problems.
I will also try your suggestion using IMAQdx Get Image vi since I have not before. As for the Grab question, to have a better understanding of how the software works, I was looking for a white paper which would go through all the details of how an image is acquired, such as allocating buffers in memory, how large should the buffers be, grabbing a particular buffer, displaying the image, superimposing ROI's on the image, etc.
Thanks for the response,