Image acquisition¶
Camera image acquisition is implemented in Viper.NET by image-sources. They are used to describe all aspects of the image acquisition process, including associated processes. In particular, the lighting of the scene can also be defined or referenced in an image source.
Lighting¶
To control lighting Viper.NET offers the module Lumos. In it, hardware for lighting control is integrated as light controller. Individual outputs of the controller are mapped as light channels. Switching of Lumos light channels is done by activating light situations, which define a brightness for a selection of light channels.
Lighting situations can be defined globally in Lumos and referenced elsewhere. For the most part, they can also be defined locally at the point of use, for example in the image sources.
Hint
Light situations lock their light channels for the duration of their activity. When the channels are released again, however, their brightness remains unchanged. Lights are never switched off automatically. The only exception is turning off light channels by jobs with the setting LightOffAfterJob.
Image sources in Viper.NET¶
A image-source defines the source of an input image within Viper.NET. It can be hardware sources, such as an area scan camera, as well as software sources, such as images in the file system or image source references. A source is not only the pure data source, but the whole image acquisition process. This includes, for example, image pre-processing sequences or the lighting.
Image sources are not a direct representation of the hardware, but define a set of parameters for image acquisition. Therefore, multiple image sources often refer to the same camera hardware to acquire images with different parameters. An image source provides exactly one image when an image is acquired. Hardware that provides multiple images when triggered is mapped by master-slave-image-sources.
The image source organization is done in image source lists at different hierarchy levels. reference-image-sources define references between the lists so that redundant configurations are avoided.
Image acquisition - Trigger types¶
Image acquisition from an image source is triggered by a trigger. For image sources that image a real camera, image acquisition can be done by software- as well as by hardware-trigger. Software-only image sources implement only the software trigger. The trigger is configured in the image-source-settings.
Software Trigger¶
With the software trigger, the time of image acquisition is set by Viper.NET by sending a corresponding signal to the camera. Usually, the software trigger has to be set in the settings of the image-source. The software trigger is often used in combination with a station with standard handshake. The execution of the job then triggers the image acquisition.
Hardware trigger¶
With the hardware trigger, the time of the image acquisition is determined by a signal at the hardware input of a camera. Usually, this requires an input to be selected as the signal source in the Image sources settings. To start a job-execution after the hardware-triggered camera image acquisition, a ImageTriggerStation can be used or a compatible station implementation provided by a plugin.
Image transfer¶
Image acquisition usually occurs before execution of a toolgroup. The transfer to the toolgroup is then done via terminals of a ImagesToolBlock. To do this, the images are either pulled in at the beginning of the job-execution or passed to the job by the caller, for example from the image-trigger-station.
As of Viper.NET 6.3, downstream image acquisition is also possible during toolgroup execution. The images are then provided in the flow via tool terminals of a GImgSrcItfTool.