Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

IMAQ Overlays slow down Image Acquisition

Hi,

 

I am acquiring 1280 x 720 images at 12 frames per second and displaying the feed on an imaq image display control which works just fine but when i overlay a large amount of points onto this live image, for example 3000 points, using the copy overlay function, my cpu load goes way up and my frames per second drop way down. Is there something i can do to avoid/minimize this performance drag that i am seeing?

 

Thanks

 

0 Kudos
Message 1 of 6
(5,736 Views)

Sure.  Don't copy 3000 overlay points onto each image.

 

If you aren't displaying every image, don't copy the overlay to every image.

 

Why are there 3000 overlay points?  Perhaps you could be more efficient and use less points.  Overlays weren't designed for a very large number of points, I don't think.

 

You might want to consider using an ROI instead.  The ROI would only need to be defined once, not copied to each image.  The ROI is linked to the display, not the image.

 

Bruce

Bruce Ammons
Ammons Engineering
0 Kudos
Message 2 of 6
(5,717 Views)

I am displaying every image, it is a live video feed and i need to overlay several grids with up to 3000 points in each grid onto the image. Im not sure you can have multiple ROIs displayed at once can you?

 

Below Is an example of what i need to achieve and if i can do this with ROIs then that would be ideal?

 

0 Kudos
Message 3 of 6
(5,713 Views)

I would suggest a grid of lines instead of points.  It takes a lot less drawing energy.  That might be enough to solve your problem.  Instead of drawing 2500 points in a 50x50 grid, you can draw 100 lines.  If you are drawing those points using circles, that is even more overhead you can eliminate.  Overlaying a small 5x5 bitmap at each point would be faster, if you absolutely have to have dots instead of lines.

 

Yes, you can display multiple ROIs.  Create an array of ROIs, then combine them into a single ROI using the tools on the ROI palette.  Same issues may apply, though.  Be efficient creating the ROI or it will bog down.

 

Bruce

Bruce Ammons
Ammons Engineering
0 Kudos
Message 4 of 6
(5,701 Views)

If the overlay does not change (or even if it does), you can make a single overlay bitmap.  If you need to save the points with the picture data, then make it destructive.

Machine Vision, Robotics, Embedded Systems, Surveillance

www.movimed.com - Custom Imaging Solutions
0 Kudos
Message 5 of 6
(5,676 Views)

I have had this issue also. I need to overlay a crosshair that can move on a large 12 megapixel image. I am currently using overlays to achieve this but this introduces a large CPU hit. Does IMAQ redraw the whole image if only an overlay is moved (overlay group for the crosshair is cleared and redrawn)? this would explain the performance issue. Is there a way of moving an overlay on an image without redrawing the image? I have also found a non-linear response to the memory and cpu usage of imaq overlays with increasing number of points. there seems to be a cliff edge in performance with 5000 points being requested, above this can sometimes just crash labview completely without any errors. (tried on multiple PCs with different specs). I now get around this by if more than a few thousand points are required to be plotted then a rectangle overlay is used instead. but I still require the ability to draw a cross hair on a large image. I have included screenshots of how I refresh the cross hair location and also the back panel of the make cross subvi, any advice greatly recieved. 

Nano_Ollie_1-1644839848337.png

 

Nano_Ollie_0-1644839791069.png

 

0 Kudos
Message 6 of 6
(1,579 Views)