mvIMPACT Acquire SDK C++
LUTParameters Class Reference

Properties for configuring settings belonging to a certain LUT (Look Up Table) to be applied to a captured image. More...

Inheritance diagram for LUTParameters:
ComponentCollection

Public Member Functions

HOBJ hObj (void) const
 Returns a unique identifier for the component collection referenced by this object. More...
 
const ComponentCollectionrestoreDefault (void) const
 Restores the default for every component of this collection. More...
 

Public Attributes

PropertyI directValues
 An integer property which can be used to directly define a LUT. More...
 
PropertyF gamma
 A float property which can be used to set the gamma value. More...
 
PropertyF gammaAlpha
 A float property which can be used to set the gammaAlpha value. More...
 
PropertyILUTGammaMode gammaMode
 An enumerated integer property which can be used to configure the LUT(Look Up Table) gamma mode. More...
 
PropertyI gammaStartThreshold
 An integer property which can be used to define a start threshold above which the gamma correction formula shall be used in mvIMPACT::acquire::LUTParameters::gammaMode mvIMPACT::acquire::LUTgmLinearStart. More...
 
PropertyI inputValues
 An integer property to define the input values for sampling points for interpolated LUT transformations. More...
 
PropertyI outputValues
 An integer property to define the output values for sampling points for interpolated LUT transformations. More...
 
PropertyI valueCount
 An integer property to define the number of sampling points for interpolated LUT transformations. More...
 

Protected Attributes

HOBJ m_hRoot
 

Friends

class ImageProcessing
 

Detailed Description

Properties for configuring settings belonging to a certain LUT (Look Up Table) to be applied to a captured image.

Note
Objects of this class can't be constructed directly. Its parameters can be accessed via an instance of a class derived from mvIMPACT::acquire::ImageProcessing.

Member Function Documentation

◆ hObj()

HOBJ hObj ( void  ) const
inlineinherited

Returns a unique identifier for the component collection referenced by this object.

This handle will always reference an object of type mvIMPACT::acquire::ComponentList.

Returns
A unique identifier for the component referenced by this object.

◆ restoreDefault()

const ComponentCollection& restoreDefault ( void  ) const
inlineinherited

Restores the default for every component of this collection.

Calling this function will restore the default value for every component belonging to this collection.

Note
The caller must have the right to modify the component. Otherwise an exception will be thrown.
Returns
A const reference to the component.

Friends And Related Function Documentation

◆ ImageProcessing

friend class ImageProcessing
friend

Member Data Documentation

◆ directValues

PropertyI directValues

An integer property which can be used to directly define a LUT.

Note
This property will be invisible when mvIMPACT::acquire::ImageProcessing::LUTEnable is set to mvIMPACT::acquire::bFalse or if mvIMPACT::acquire::ImageProcessing::LUTMode is NOT set to mvIMPACT::acquire::LUTmDirect.

This property will provide a complete LUT thus e.g. in a LUT mapping to a 10 bit output this property will store 2^10 (1024) values that can be accessed and modified by the user.

◆ gamma

PropertyF gamma

A float property which can be used to set the gamma value.

Gamma correction is explained e.g. in this Wikipedia article: http://en.wikipedia.org/wiki/Gamma_correction.

Note
This property will be invisible when mvIMPACT::acquire::ImageProcessing::LUTEnable is set to mvIMPACT::acquire::bFalse or if mvIMPACT::acquire::ImageProcessing::LUTMode is NOT set to mvIMPACT::acquire::LUTmGamma.

The gamma value will be used to calculate the corresponding input -> output transformation LUT.

The following formula will be used:

( ( 1 + gammaAlpha ) * inputValue^(1/gamma) ) - gammaAlpha

◆ gammaAlpha

PropertyF gammaAlpha

A float property which can be used to set the gammaAlpha value.

Refer to mvIMPACT::acquire::LUTParameters::gamma to see how this parameter affects the resulting LUT data.

Note
This property will be invisible when mvIMPACT::acquire::ImageProcessing::LUTEnable is set to mvIMPACT::acquire::bFalse or if mvIMPACT::acquire::ImageProcessing::LUTMode is NOT set to mvIMPACT::acquire::LUTmGamma.

◆ gammaMode

An enumerated integer property which can be used to configure the LUT(Look Up Table) gamma mode.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TLUTGammaMode.

Note
This property will be invisible when mvIMPACT::acquire::ImageProcessing::LUTEnable is set to mvIMPACT::acquire::bFalse or if mvIMPACT::acquire::ImageProcessing::LUTMode is NOT set to mvIMPACT::acquire::LUTmGamma.

◆ gammaStartThreshold

PropertyI gammaStartThreshold

An integer property which can be used to define a start threshold above which the gamma correction formula shall be used in mvIMPACT::acquire::LUTParameters::gammaMode mvIMPACT::acquire::LUTgmLinearStart.

Values below that threshold will be calculated using linear interpolation.

Note
This property will be invisible when mvIMPACT::acquire::ImageProcessing::LUTEnable is set to mvIMPACT::acquire::bFalse or if mvIMPACT::acquire::ImageProcessing::LUTMode is NOT set to mvIMPACT::acquire::LUTmGamma or if mvIMPACT::acquire::LUTParameters::gammaMode is NOT set to mvIMPACT::acquire::LUTgmLinearStart.

◆ inputValues

PropertyI inputValues

An integer property to define the input values for sampling points for interpolated LUT transformations.

Note
This property will be invisible when mvIMPACT::acquire::ImageProcessing::LUTEnable is set to mvIMPACT::acquire::bFalse or if mvIMPACT::acquire::ImageProcessing::LUTMode is NOT set to mvIMPACT::acquire::LUTmInterpolated.

The number of values stored by this property can be changed by writing to the property mvIMPACT::acquire::LUTParameters::valueCount. The documentation of this property also provides some example values and resulting transfer characteristics.

◆ m_hRoot

HOBJ m_hRoot
protectedinherited

◆ outputValues

PropertyI outputValues

An integer property to define the output values for sampling points for interpolated LUT transformations.

Note
This property will be invisible when mvIMPACT::acquire::ImageProcessing::LUTEnable is set to mvIMPACT::acquire::bFalse or if mvIMPACT::acquire::ImageProcessing::LUTMode is NOT set to mvIMPACT::acquire::LUTmInterpolated.

The number of values stored by this property can be changed by writing to the property mvIMPACT::acquire::LUTParameters::valueCount. The documentation of this property also provides some example values and resulting transfer characteristics.

◆ valueCount

PropertyI valueCount

An integer property to define the number of sampling points for interpolated LUT transformations.

Note
This property will be invisible when mvIMPACT::acquire::ImageProcessing::LUTEnable is set to mvIMPACT::acquire::bFalse or if mvIMPACT::acquire::ImageProcessing::LUTMode is NOT set to mvIMPACT::acquire::LUTmInterpolated.

At least 2 sampling points are needed, the max. number of sampling points is defined by the bit depth of the input image, thus a 8 bit input image can have no more than 2^8 (256) sampling points. if the max. number of sampling points is used, the behaviour is the same a when working with mvIMPACT::acquire::ImageProcessing::LUTMode set to mvIMPACT::acquire::LUTmDirect.

EXAMPLE

Assuming 4 sampling points in mvIMPACT::acquire::LUTimThreshold mode for an 8 to 8 bit transformation where the following values are used:

indexinput valueoutput value
0064
1128255
21920
32550

This will result in the following transfer function characteristic:

The following C++ code would be needed to achieve this behaviour for mono video sources:

//-----------------------------------------------------------------------------
void fn( ImageProcessing& ip, TLUTImplemention LUTImplementation )
//-----------------------------------------------------------------------------
{
ip.LUTEnable.write( bTrue );
ip.LUTMode.write( LUTmInterpolated );
ip.LUTImplementation.write( LUTImplementation );
ip.LUTInterpolationMode.write( LUTimThreshold );
switch( LUTImplementation )
{
ip.LUTMappingHardware.write( LUTm8To8 );
break;
ip.LUTMappingSoftware.write( LUTm8To8 );
break;
}
LUTParameters& LUTAccess = ip.getLUTParameter( 0 );
LUTAccess.valueCount.write( 4 );
vector<int> v(4);
v[0] = 0;
v[1] = 128;
v[2] = 192;
v[3] = 255;
LUTAccess.inputValues.write( v );
v[0] = 64;
v[1] = 255;
v[2] = 0;
v[3] = 0;
LUTAccess.outputValues.write( v );
}

Assuming 3 sampling points in mvIMPACT::acquire::LUTimLinear mode for an 8 to 8 bit transformation where the following values are used:

indexinput valueoutput value
0064
1128255
22550

This will result in the following transfer function characteristic:

Assuming 4 sampling points in mvIMPACT::acquire::LUTimCubic mode for an 8 to 8 bit transformation where the following values are used:

indexinput valueoutput value
000
1128255
2192192
32550

This will result in the following transfer function characteristic:


The documentation for this class was generated from the following file: