Impact Acquire SDK Java
TPolarizedDataExtractionMode Class Reference

Defines valid modes for polarization data extraction filters. More...

Static Public Attributes

static final int prm2By2 = acquireJNI.prm2By2_get()
 The pixels will be re-arranged in a way the image keeps its original dimension but each polarization angle will afterwards occupy a certain section in the image.
 
static final int prmExtractAngle = acquireJNI.prmExtractAngle_get()
 The angle of the maximum polarization for every '2 * 2' region in the image will be calculated and the resulting value will then be mapped to the value range of the source pixel format.
 
static final int prmExtractDegree = acquireJNI.prmExtractDegree_get()
 The degree of the polarization for every '2 * 2' region in the image will be calculated and the resulting value will then be mapped to the value range of the source pixel format.
 
static final int prmExtractSingle = acquireJNI.prmExtractSingle_get()
 The pixel selected by 'PolarizedDataExtractionChannelIndex' will be extracted and forwarded from each region defined by '2 * 2'.
 
static final int prmHorizontal = acquireJNI.prmHorizontal_get()
 The pixels will be re-arranged one after the other thus the resulting image will have a width of 'input image width * 2' and a height of 'input image height / 2'.
 
static final int prmMeanValue = acquireJNI.prmMeanValue_get()
 The mean value of all pixels whose value ranges from 'PolarizedDataExtractionLowerLimit' to 'PolarizedDataExtractionUpperLimit' will be calculated within each region defined by '2 * 2' in the source image and will be forwarded as a single new pixel in the destination image.
 
static final int prmMinimumValue = acquireJNI.prmMinimumValue_get()
 The pixel with the minimum value will be extracted and forwarded from each region defined by '2 * 2'.
 
static final int prmPseudoColorRepresentation = acquireJNI.prmPseudoColorRepresentation_get()
 The angle of the maximum polarization and the degree of the polarization for every '2 * 2' region in the image will be calculated and the resulting value will then be mapped to the value range of and 8-bit HSL image.
 
static final int prmVertical = acquireJNI.prmVertical_get()
 The pixels will be re-arranged one after the other thus the resulting image will have a width of 'input image width / 2' and a height of 'input image height * 2'.
 

Detailed Description

Defines valid modes for polarization data extraction filters.

Since
2.29.0

Member Data Documentation

◆ prm2By2

final int prm2By2 = acquireJNI.prm2By2_get()
static

The pixels will be re-arranged in a way the image keeps its original dimension but each polarization angle will afterwards occupy a certain section in the image.

The upper left quarter of the resulting image will contain all the upper left pixels from each 2 by 2 pixel region etc.

Since
2.29.1

◆ prmExtractAngle

final int prmExtractAngle = acquireJNI.prmExtractAngle_get()
static

The angle of the maximum polarization for every '2 * 2' region in the image will be calculated and the resulting value will then be mapped to the value range of the source pixel format.

The resulting image therefore will have a width equal to 'input image width / 2' and a height equal to 'input image height / 2'. From each 2 by 2 region (thus 4 input values) a single output value will be calculated and placed into the resulting image. In this mode the output pixel format will be the same as the input pixel format and the resulting value will be mapped to this pixel formats value range thus the maximum angle (180 degree) will correspond the maximum pixel value in this format (e.g. 1023 for mvIMPACT.acquire.TImageBufferPixelFormat.ibpfMono10).

The angle of the maximum polarization is calculated based the formula:

\[\Theta = \frac{1}{2}*atan\left (\left ( P45-P135 \right ); \left (P0 - P90\right )\right ) \]

Note
Pixels which are saturated or which don't show a signal at all will cause incorrect polarization data. This happens as a result of wrong relations between the different polarization directions which causes wrong values for the different stokes parameters resulting in incorrect pixel data. Different exposure settings might improve the result.
Since
2.38.0

◆ prmExtractDegree

final int prmExtractDegree = acquireJNI.prmExtractDegree_get()
static

The degree of the polarization for every '2 * 2' region in the image will be calculated and the resulting value will then be mapped to the value range of the source pixel format.

The resulting image therefore will have a width equal to 'input image width / 2' and a height equal to 'input image height / 2'. From each 2 by 2 region (thus 4 input values) a single output value will be calculated and placed into the resulting image. In this mode the output pixel format will be the same as the input pixel format and the resulting value will be mapped to this pixel formats value range thus the maximum polarization will correspond the maximum pixel value in this format (e.g. 1023 for mvIMPACT.acquire.TImageBufferPixelFormat.ibpfMono10).

The calculation of the degree of the maximum polarization is based the formula:

\[\Pi = \frac{\sqrt{\left(P0-P90\right)^{2}+\left(P45-P135\right)^{2}}}{\left(P0+P90\right)}\]

Note
Pixels which are saturated or which don't show a signal at all will cause incorrect polarization data. This happens as a result of wrong relations between the different polarization directions which causes wrong values for the different stokes parameters resulting in incorrect pixel data. Different exposure settings might improve the result.
Since
2.38.0

◆ prmExtractSingle

final int prmExtractSingle = acquireJNI.prmExtractSingle_get()
static

The pixel selected by 'PolarizedDataExtractionChannelIndex' will be extracted and forwarded from each region defined by '2 * 2'.

The resulting image therefore will have a width equal to 'input image width / 2' and a height equal to 'input image height / 2'

Since
2.29.0

◆ prmHorizontal

final int prmHorizontal = acquireJNI.prmHorizontal_get()
static

The pixels will be re-arranged one after the other thus the resulting image will have a width of 'input image width * 2' and a height of 'input image height / 2'.

The resulting image will consist of several small images sitting next each other. The first image will contain all the upper left pixels from each extraction ROI, the last image all the lower right pixels. The images in between will be extracted line by line and then row by row.

Since
2.29.0

◆ prmMeanValue

final int prmMeanValue = acquireJNI.prmMeanValue_get()
static

The mean value of all pixels whose value ranges from 'PolarizedDataExtractionLowerLimit' to 'PolarizedDataExtractionUpperLimit' will be calculated within each region defined by '2 * 2' in the source image and will be forwarded as a single new pixel in the destination image.

The resulting image therefore will have a width equal to 'input image width / 2' and a height equal to 'input image height / 2'

Since
2.29.0

◆ prmMinimumValue

final int prmMinimumValue = acquireJNI.prmMinimumValue_get()
static

The pixel with the minimum value will be extracted and forwarded from each region defined by '2 * 2'.

The resulting image therefore will have a width equal to 'input image width / 2' and a height equal to 'input image height / 2'

Since
2.29.0

◆ prmPseudoColorRepresentation

final int prmPseudoColorRepresentation = acquireJNI.prmPseudoColorRepresentation_get()
static

The angle of the maximum polarization and the degree of the polarization for every '2 * 2' region in the image will be calculated and the resulting value will then be mapped to the value range of and 8-bit HSL image.

The angle and the degree are calculated as described in mvIMPACT.acquire.TPolarizedDataExtractionMode.prmExtractDegree and mvIMPACT.acquire.TPolarizedDataExtractionMode.prmExtractAngle mode. Afterwards the angle is used as hue and the degree is used as saturation value in the HSL color representation and converted to RGB color representation.

The resulting image therefore will have a width equal to 'input image width / 2' and a height equal to 'input image height / 2'. From each 2 by 2 region (thus 4 input values) 2 output values will be calculated and placed into the resulting temporary HSL image. Afterwards this HSL image will transformed back to RGB to generate a pseudo-color image in mvIMPACT.acquire.TImageBufferPixelFormat.ibpfRGB888Planar format.

Note
Pixels which are saturated or which don't show a signal at all will cause incorrect polarization data. This happens as a result of wrong relations between the different polarization directions which causes wrong values for the different stokes parameters resulting in incorrect pixel data. Different exposure settings might improve the result.
Since
2.38.0

◆ prmVertical

final int prmVertical = acquireJNI.prmVertical_get()
static

The pixels will be re-arranged one after the other thus the resulting image will have a width of 'input image width / 2' and a height of 'input image height * 2'.

The resulting image will consist of several small images sitting on top of each other. The first image will contain all the upper left pixels from each extraction ROI, the last image all the lower right pixels. The images in between will be extracted line by line and then row by row.

Since
2.29.0