Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Control of image display time

I need to present two or more images alternatively on the screen with precise timing. When I am using a sequence loop, it works for intervals above 1000 ms. For shorter intervals, timing depends a lot on the picture size.

Have anyone experience with a similar task or have an idea of the best way to do it?

Thanks,

Yossi

PS: no special hardware will be used.
0 Kudos
Message 1 of 7
(4,083 Views)
Yossi,

What method are you using to display the images? You will need a high speed display method for shorter intervals. A picture control is faster than an intensity plot. The IMAQ vision display is the fastest. The version with all the bells and whistles is part of the IMAQ toolkit. If you don't have the toolkit, there is simple example of how to do it using IMAQ calls at the following location on the developer zone:

http://zone.ni.com/devzone/explprog.nsf/6c163603265406328625682a006ed37d/22474456534202b086256aff005fc4f3?OpenDocument

With the high speed display, it should be pretty easy to achieve the timing you want.

Bruce
Bruce Ammons
Ammons Engineering
0 Kudos
Message 2 of 7
(4,083 Views)
Hi Bruce,

The example you suggested is very nice. However, the origin of my image is a 2D array, which might slow down the display.

I am attaching the vi I tryed. Please tell me your opinion.

Thanks,
Yossi
0 Kudos
Message 3 of 7
(4,083 Views)
Yossi,

I don't really understand your application or how critical the timing is. Different solutions apply depending on if you need to repeatedly switch back and forth between two images, or if the images are going to be changing, or if you just need to do it once.

Another possible approach is drawing the image to a hidden picture control, then turning it visible for a fixed amount of time. I've never tried it, but it seems like it would be fast. You could also move it offscreen while drawing, then move it onscreen for the proper amount of time.

Bruce
Bruce Ammons
Ammons Engineering
0 Kudos
Message 4 of 7
(4,083 Views)
The application will be used for visual psychophysics tests. Basicly, one or two images will be alternatively displayed on the screen. Image size can be up 800 x 800 pixels and relevant display intervals are 100 ms.

I have tried the visibility property, but it is even slower then the method applied currently in my VI. I will try the moving offscreen trick today.

Best regards,
Yossi
0 Kudos
Message 5 of 7
(4,083 Views)
Yossi,

For 100 ms display intervals, I would probably use the IMAQ display. Just convert your arrays to IMAQ images once, then you can display them as many times as you want.

Bruce
Bruce Ammons
Ammons Engineering
0 Kudos
Message 6 of 7
(4,083 Views)
You are right. I tried the picture shifting you suggested and it worked very nicely up to 100 ms with a 768 x 768 drawing size. The problem now is that it takes several ms (easily noticed) for the image to be drawn from top to bottom.

The only way seems really to be to convert my array to an IMAQ image...

Many thanks, Bruce

Yossi
0 Kudos
Message 7 of 7
(4,083 Views)