04-29-2006 09:40 AM
04-29-2006 05:07 PM - edited 04-29-2006 05:07 PM

Message Edité par TiTou le 04-30-2006 12:08 AM
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
04-29-2006 05:21 PM
04-29-2006 05:40 PM
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
04-29-2006 09:50 PM
If you have Vision installed you can use:
IMAQ ImageToArray
Extracts (copies) the pixels from an image, or part of an image, into a LabVIEW 2D array. This array is encoded in 8 bits, 16 bits, or floating point, as determined by the type of input image.
Matt
05-01-2006
12:13 PM
- last edited on
09-14-2026
05:41 PM
by
Content Cleaner
HI Bruce -
It sounds like the other members have already answered your question, but I'll follow up just to be clear:
The IMAQ ImagetoArray function is indeed the one you're looking for. This function will change your Image datatype (which is a pointer to the memory buffer holding the image -- though it's important to remember that the buffer contains header data in addition to the image pixels themselves) into a LV array. This function is available with recent versions of the NI-IMAQ driver, including the current version (3.5.1).
The reverse function, IMAQ ArraytoImage, is only available as part of the Vision Development Module.
07-08-2010 05:49 PM - edited 07-08-2010 05:56 PM
Hi:
I have a similar question to this thread, and have searched through the Discussion Forum but not finding a clear answer...
I have images streaming in from my GigE camera and wish to continue to display them in real-time as I have currently, but now would also like to trap the last 50 images acquired into an array. This is useful if my machine estop's for whatever reason, the user can then review the last 50 images to look for the cause of the problem. I only am displaying the images - no image analysis is currently required. I understand that the image data on the wire being passed are only pointers to the images in one memory location and not the actual image data itself, so using standard array building (copying) from the image wire will not work.
At the code level I'm having a problem inside the while loop copying the actual image data into some sort of an array [to a different memory location] suitable for displaying on the front panel so the user can just scroll through them. As I understand it, the IMAQ Copy function would be the one to use but is not found in the Vision Acquisition module - only the Vision Dev module.
Any ideas on how to copy images to an array without IMAQ Copy, or other ways to solve this problem, are welcome!
Rick
07-09-2010 03:27 AM
I don't have any real experience with IMAQ, so I'm not sure what the streaming code looks like, but if you can just generate a new reference for each image, you can presumably simply have the array of reference and close the references only as the exit the array (or even reuse them so you don't have to repeatedly open and close references).
If you can't do that, I presume that using the Image to Array function mentioned earlier in the thread should work. You can convert every single image into an array and push that array into a lossy queue with the size 50. If you need to review the images, you flush or preview the queue. This will probably have undesired performance implications, as it will require you to convert every single image, even if you're not going to use it.
This is the best I can do with any practical IMAQ experience.