Balluff - BVS CA-GX0 / BVS CA-GX2 Technical Documentation
|
The IMX420/425/428 are Pregius sensors of the third generation.
Those sensors feature a dual gain mode, i.e. after a trigger event, for example, different image areas can be amplified at the same time differently.
To activate the dual gain mode it is necessary to enable the multi area mode by using the mvMultiAreaMode property. At least two different AOIs have to be defined.
Once the AOIs are configured the GainSelector has to be set to one of the new implemented options called mvHorizontalZone0 and mvHorizontalZone1.
The gain value of the different zones can be specified using the "Gain Selector". And the corresponding gain property. Possible zones are
If this mode is selected you can set the "mv Gain Horizontal Zone Divider". This property indicates where the zones are divided horizontally once more than two AOIs are configured. In this case the e.g. 25% means that the upper 25% of the image are defined by the gain value of mvHorizontalZone0 and the lower 75% are defined by the gain value of mvHorizontalZone1.
To activate the dual gain, just
As an example the IMX425 sensor is used for the sample. The goal is to configure three AOIs which have a similar height. Since the AOIs must not overlap or touch each other, it is important to increase the offset of the next AOI by the smallest increment size. Which is 8 in this case.
#include <mvIMPACT_CPP/mvIMPACT_acquire_GenICam.h> // more code GenICam::ImageFormatControl ifc( pDev ); ifc.mvMultiAreaMode.writeS( "mvMultiAreasCombined" ); ifc.mvAreaSelector.writeS( "mvArea0" ); ifc.mvAreaOffsetX.write( 0 ); ifc.mvAreaOffsetY.write( 0 ); ifc.mvAreaWidth.write( ifc.mvAreaWidth.getMaxValue( ) ); ifc.mvAreaHeight.write( 360 ); ifc.mvAreaEnable.writeS( "1" ); ifc.mvAreaSelector.writeS( "mvArea1" ); ifc.mvAreaOffsetX.write( 0 ); ifc.mvAreaOffsetY.write( 368 ); ifc.mvAreaWidth.write( ifc.mvAreaWidth.getMaxValue( ) ); ifc.mvAreaHeight.write( 360 ); ifc.mvAreaEnable.writeS( "1" ); ifc.mvAreaSelector.writeS( "mvArea2" ); ifc.mvAreaOffsetX.write( 0 ); ifc.mvAreaOffsetY.write( 736 ); ifc.mvAreaWidth.write( ifc.mvAreaWidth.getMaxValue( ) ); ifc.mvAreaHeight.write( 360 ); ifc.mvAreaEnable.writeS( "1" ); GenICam::AnalogControl anc( pDev ); anc.mvGainMode.writeS( "mvMultiZone" ); anc.gainSelector.writeS( "mvHorizontalZone0" ); anc.gain.write( 12 ); anc.mvGainHorizontalZoneDivider.write( 80 ); anc.gainSelector.writeS( "mvHorizontalZone1" ); anc.gain.write( 0 ); // more code