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
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.