The Image Queue module provides a way to capture images quickly for later more intensive processing that is too slow to perform during capture. In many situations images cannot be processed quickly enough to ensure that the entire pipeline runs fast enough to ensure that needed images are processed. Because of additional processing some of the images from the camera may be skipped in order to retain real-time performance. The Image Queue module provides a way around this issue by breaking image capture (record) and image processing (playback) into two stages.
The image capture section of the module expects an image generation module, such as Genicam, RTSP, HTTP_Read, etc. , to be specified which can quickly grab images. Once these images have been captured the Image Queue module will quickly save these raw images into memory. Once the record period has passed the module then reproduces these saved images to the playback section of the module as if the images were just captured. Because the images have been saved, the playback section can take an extented period of time to process the images without fear of losing frames that would have been skipped without the Image Queue module.
This module allows for a period of quick recording and slower playback while more intensive processing is performed with insurance that all relevant frames will be processed one by one. This assumes that typical functioning of the system has quick recording needs followed by an inactive period where the live camera can be ignored and saved images be processed. Thus this is NOT useful if you have a constant stream of images to process but IS useful if these images come quickly during an "on" period followed by a longer "off" period.
The module always monitors free memory left while recording. If the available memory drops below 10 Megabytes the module will automatically switch to playback mode to avoid running out of internal memory. Please be sure when using this module to record an extended timeframe that sufficient memory is available to perform the recording.
There is also a limit of 10,000 frames that can be recorded. If this limit is reached the module will also switch to playback mode.
1. Maximum Frames - Specify maximum number of frames to record that when reached will automatically trigger a playback.
2. Maximum Seconds - Specify maximum number of seconds to record that when reached will automatically trigger a playback.
3. Command Variable - Specify a variable that will contain one of the following words: "Play", "Record", "Stop", "Pause", "Resume" which will be used to control the functionality of the module.
- Record - Start recording image frames as they enter the module and skip any execution.
- Play - Stop recording and start playback/execute processing modules.
- Stop - Stops recording or playback
- Pause - Pauses recording or playback
- Resume - Resumes recording or playback
4. Record, Pause, Stop buttons - To test the functionality of this module, manual buttons are provided that you can use to control the module to understand the flow of images into and out of the module.
Download the example robofile which includes the Camera Properties module and the RGB Filter module.
- Ensure the camera button is NOT enabled.
- Select a webcam in the Camera Properties module
- Open the Image Queue module and press record.
- Wait a couple seconds and then press Stop.
IMAGE_COUNT - the system variable IMAGE_COUNT is updated to when the image was captured IMAGE_DATETIME - the system variable is updated to when the image was captured IMAGE_TIME - the system variable is updated to when the image was captured IMAGE_QUEUE_RECORDED - indicates how many frames have been queued. Increases during recording and decreases during playback. IMAGE_QUEUE_MODE - indicates current mode of the module (recording, playing, stopped, paused)
| New Post
|Image_Queue Related Forum Posts||Last post||Posts||Views|