Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

how do I control how long an image stays on the display screen?

I would like to be able to control how long (in frames of display) that a particular image stays on a display screen.  Is there any way to do that other than making an avi and having the image embedded on a frame by frame basis in the avi...?  I was thinking of a little more real time (direct access) to the image plane.
 
For example...I might want to have the screen dark, then have one and only on full sweep of the screen display an image...then go dark again.  I don't understand how to get to the display and synchronize the display media time with LabView data output time by providing images to it in pictures and the like?
 
Any Thoughts?
 
The Hummer
0 Kudos
Message 1 of 9
(4,346 Views)

I might want to have the screen dark, then have one and only on full sweep of the screen display an image...then go dark again.  I don't understand how to get to the display and synchronize the display media time with LabView data output time by providing images to it in pictures and the like?


Do you mean you want to  continuously  see the grabbed image?You can use an acquire and a timed exit of the loop to make sure the image stays in the scrren as long as you wish that to.

What do you mean by full sweep of the screen?

What do mean by go dark again?Do you have  an  dark image and do you want that to be your default if the image is not grabbed?
0 Kudos
Message 2 of 9
(4,329 Views)

The problem I am dealing with is looking at a display screen with a CCD camera.  I can control when and how long the camera takes an image.  What I do not seem to be able to control yet, is the display.

If the display is displaying a dark (no brightness 0,0,0)...It will be doing that at the "refresh" rate of the screen.  (like 60Hz).  If I want to put an image on the screen, and have it appear for only one of the refresh periods (forgive my old person reference to "sweep") then I have to be able to write several dark frames to the display, followed by one frame containing the image I want to see, then more dark frames.  The reason for doing this is that coordinating when the camera takes the image from the screen is difficult...

Think of it this way.  In the old style flash pictures the photographer would remove the lens cap, flash the flash powder, and then replace the lens cap.  The only way I can control exactly how much light is reaching my camera from the display is to open the camera (begin taking an image with a known integration time longer than one refresh time of the display screen, then put one...and only one...image on the screen followed by more dark frames and then close the camera integration.

That's the problem.  I can do it with AVI's ... by making a movie of what I want to show and then playing the movie, and trying to figure out when the particular frame I am interested in will appear...but that takes a lot more time and effort than being able to control all the activity directly by the use of vi functions.

See where I'm headed?

Thanks...

Hummer 1

0 Kudos
Message 3 of 9
(4,322 Views)
When you say "For example...I might want to have the screen dark, then have one and only on full sweep of the screen display an image...then go dark again. " I assume you mean you want the display to be blank, and then at a certain point you want to take one frame from your camera? Is this correct?

And when you talk about timing, what do you want this non-black frame (image from your camera) synched with? Something like you want a period of time of black display and then press a button and then go back to black? It sounds like you want it to by synched with the refreshing period of your monitor.

Can I ask you want your application is?

"
The only way I can control exactly how much light is reaching my camera from the display is to open the camera (begin taking an image with a known integration time longer than one refresh time of the display screen, then put one...and only one...image on the screen followed by more dark frames and then close the camera integration."  Why can't you run a grab session in Measurement and Automation Explorer to adjust lighting?
--Michelle

National Instruments
0 Kudos
Message 4 of 9
(4,310 Views)

Thanks for your note.

My application is testing the response of cameras and software to images containing precisely located points of light.   Yes, I would like to synchronize the image taking with the display refresh.  Average levels mean nothing in this process...I need to be able to control the beginning of the camera integration period(which I can do), the end of the camera integration period (which I can do) and exactly how long the image is presented to the camera....(not in ms...but in refresh periods of the display device...if I were to try to do it with "timers" I would wind up with the display partially refreshing during one of the integration periods of the camera and that would produce varying pixel values...)

Thanks in advance for your help.

The Hummer

0 Kudos
Message 5 of 9
(4,307 Views)
Hummer,
               You got to tell us your application. The speed requirement. You can use acquire and keep it in the acquire mode for the time u specified and then when u are sure the illuminatuion is right (Pixel values,histogram u can see that in max) u can then process the image.

But i still feel i am not understanding your problem correctly


0 Kudos
Message 6 of 9
(4,293 Views)

Here is the best I can do.

I want to take an image of an lcd screen, or a dlp projected screen, with a ccd camera.  This is not a stationary image which I can mess around with, take histograms, adjust lighting and all that...it is to be presented in a flash...one frame...and then it will be gone. 

The camera has integration time control and the ability to control when the image taking process begins.  The image I take is required to have a certain number of photons provided to the camera.  The only way to assure that the correct number of photons hit the ccd array in the camera is to control the duration and brightness of the image which is provided to the camera by the display.  If the display can be controlled on a frame by frame basis, then that is good enough. 

Each frame of image on the display will provide an opportunity to provide "Nothing" or "Something".  While there is "Nothing being provided" (i.e. in a dark, blank, (0,0,0) image frame) then the camera will record nothing, even though it is in the acquisition mode and within the integration time window.  When a "Something" frame is presented, one and only one frame mind you...(One ping only, please)...then a fixed duration of information will be displayed on the screen, the dynamics of refresh will take place and the camera will accumulate all the photons from that frame...Then when the screen (presented image pixel values) returns to "Nothing"...(0,0,0) no more photons will be accumulated by the camera...achieving my goal.

If I could synchronize the camera to take an image consisting of integer numbers of frames (0, 1, 2,...) beginning as each frame was being "turned on" by the display, that would satisfy my requirement.  What I DON'T want is to take images of a fractional number of frames (0, 1.23, 1.8, ...)

I would like to have the ability to synchronize the taking of the image with the refresh of the screen so that I get control of single frames of information provided to the camera.  But, if I can't control how many frames of information are provided, synchronization is not important.

Does that help?

I Humm, because I can't sing.

0 Kudos
Message 7 of 9
(4,270 Views)
R u by chance designing your own ccd camera? I understand that ccd sensor charges when the light falls on that.What I did was create a buffer and read the trigger continously and once i get the trigger i will exit the while loop and transfer the image data for processingand store the processd image as long as my next trigger comes.I remeber not disposing the image at any point and the only way the image will changed is the next image data will over write the current image.


0 Kudos
Message 8 of 9
(4,268 Views)
It sounds like you need to take one image (a snap) of your display at a certain point. If you want to do this you will need some kind of trigger line from the display to signify that an 'image' is present, so acquire a picture. Another option is to run your camera much faster than your display and discard the extra samples. I am still not clear why you need only one image/one frame displayed at one time. Why can't you display the image for a little longer than needed and discard those samples?

In the end, if you are going to synch your display and your camera you need some kind of trigger or shared time signal.
--Michelle

National Instruments
0 Kudos
Message 9 of 9
(4,258 Views)