Balluff - BVS CA-SF Technical Documentation
|
Multiple exposure is a feature from Sony Pregius sensor family. This feature is available at Balluff/MATRIX VISION cameras with sensors from the 3rd and 4th generation.
It allows to have multiple exposures in a single frame. The sensor will start as many exposures as configured in the property mvMultiExposureCount before it starts its readout.
The pause between each exposure is either as small as possible, respecting the sensor's "memory transfer waiting time", or defined by the user.
This is the default mode. The property "Setting → Base → Camera → AcquisitionControl → mvMultiExposureCount" defines how many times the sensor exposes.
The sensor will start each exposure as soon as possible. After all exposures are done, the sensor starts its readout. The camera will then produce a single frame.
The frame rate calculated at mvResultingFrameRate depends on the number of exposures, the duration of each exposure and the minimal necessary pause between exposures.
#include <mvIMPACT_CPP/mvIMPACT_acquire_GenICam.h> // more code double desiredExposureTime_us = 1000; unsigned int desiredExposureCount = 4; // Range 1 - 4095 // more code GenICam::AcquisitionControl ac = new GenICam::AcquisitionControl( pDev ); ac.exposureMode.writeS( "Timed" ); ac.exposureTime.write( desiredExposureTime_us ); ac.mvMultiExposureCount.write( desiredExposureCount ); ac.triggerSelector.writeS( "FrameStart" ); ac.triggerMode.writeS( "Off" ); // more code
As in the default mode, the number of exposures and the exposure duration can be set respectively with mvMultiExposureCount and ExposureTime.
The pause between exposures can be set using the TriggerMode for the TriggerSelector "FrameStart". By choosing an appropriate TriggerSource, this pause can be variable as well.
Timers can be used to trigger each exposure. As shown in the example code below.
#include <mvIMPACT_CPP/mvIMPACT_acquire_GenICam.h> // more code GenICam::AcquisitionControl ac = new GenICam::AcquisitionControl( pDev ); GenICam::CounterAndTimerControl ctc = new GenICam::CounterAndTimerControl( pDev ); double desiredExposureTime_us = 1000; double desiredTimerDuration_us = 250000; unsigned int desiredExposureCount = 4; // Range 1 - 4095 ac.exposureMode.writeS( "Timed" ); ac.exposureTime.write( desiredExposureTime_us ); ac.mvMultiExposureCount.write( desiredExposureCount ); ac.triggerSelector.writeS( "FrameStart" ); ac.triggerMode.writeS( "On" ); ac.triggerSource.writeS( "Timer1End" ); ctc.timerSelector.writeS( "Timer1" ); ctc.timerTriggerSource.writeS( "Timer1End" ); ctc.timerDuration.write( desiredTimerDuration_us ); // more code
The resulting frame from the example above is shown below.