EasyImage::Uniformize

Shading correction is the process of transforming the gray or color component values of an image, using one or two reference images or vectors.

Namespace: Euresys::Open_eVision

[C++]

void Uniformize(
   const EROIBW8* sourceImage,
   EBW8 pixelReference,
   const EROIBW8* imageReference,
   EROIBW8* destinationImage,
   bool multiplicative
)

void Uniformize(
   const EROIBW16* sourceImage,
   EBW16 pixelReference,
   const EROIBW16* imageReference,
   EROIBW16* destinationImage,
   bool multiplicative
)

void Uniformize(
   const EROIC24* sourceImage,
   EC24 pixelReference,
   const EROIC24* imageReference,
   EROIC24* destinationImage,
   bool multiplicative
)

void Uniformize(
   const EROIBW8* sourceImage,
   EBW8 pixelReference,
   const EBW8Vector* vectorOfPixelReference,
   EROIBW8* destinationImage,
   bool multiplicative
)

void Uniformize(
   const EROIBW16* sourceImage,
   EBW16 pixelReference,
   const EBW16Vector* vectorOfPixelReference,
   EROIBW16* destinationImage,
   bool multiplicative
)

void Uniformize(
   const EROIC24* sourceImage,
   EC24 pixelReference,
   const EC24Vector* vectorOfPixelReference,
   EROIC24* destinationImage,
   bool multiplicative
)

void Uniformize(
   const EROIBW8* sourceImage,
   EBW8 pixelLightReference,
   const EROIBW8* imageLightReference,
   EBW8 pixelDarkReference,
   const EROIBW8* imageDarkReference,
   EROIBW8* destinationImage
)

void Uniformize(
   const EROIBW16* sourceImage,
   EBW16 pixelLightReference,
   const EROIBW16* imageLightReference,
   EBW16 pixelDarkReference,
   const EROIBW16* imageDarkReference,
   EROIBW16* destinationImage
)

void Uniformize(
   const EROIC24* sourceImage,
   EC24 pixelLightReference,
   const EROIC24* imageLightReference,
   EC24 pixelDarkReference,
   const EROIC24* imageDarkReference,
   EROIC24* destinationImage
)

void Uniformize(
   const EROIBW8* sourceImage,
   EBW8 pixelLightReference,
   const EBW8Vector* vectorOfPixelLightReference,
   EBW8 pixelDarkReference,
   const EBW8Vector* vectorOfPixelDarkReference,
   EROIBW8* destinationImage
)

void Uniformize(
   const EROIBW16* sourceImage,
   EBW16 pixelLightReference,
   const EBW16Vector* vectorOfPixelLightReference,
   EBW16 pixelDarkReference,
   const EBW16Vector* vectorOfPixelDarkReference,
   EROIBW16* destinationImage
)

void Uniformize(
   const EROIC24* sourceImage,
   EC24 pixelLightReference,
   const EC24Vector* vectorOfPixelLightReference,
   EC24 pixelDarkReference,
   const EC24Vector* vectorOfPixelDarkReference,
   EROIC24* destinationImage
)

Parameters

sourceImage

Pointer to the source image/ROI.

pixelReference

Constant value to transform the reference image or vector into.

imageReference

Pointer to the reference source image/ROI or vector.

destinationImage

Pointer to the destination image/ROI.

multiplicative

true, if the transform is multiplicative (gain); false, if the transform is additive (offset) (by default, true).

vectorOfPixelReference

Constant value to transform the reference image or vector into.

pixelLightReference

Constant value to transform the light reference image or vector into.

imageLightReference

Pointer to the light reference source image/ROI or vector.

pixelDarkReference

Constant value to transform the dark reference image/ROI or vector into.

imageDarkReference

Pointer to the dark reference source image/ROI or vector.

vectorOfPixelLightReference

Constant value to transform the light reference image or vector into.

vectorOfPixelDarkReference

Constant value to transform the dark reference image/ROI or vector into.

Remarks

The intent is to compensate for non-uniform lighting or sensor response non-uniformity by providing images of the background with no foreground object present.
In the case of area-scan cameras, the illumination can change anywhere in the field of view, requiring 2D compensation. In the case of line-scan cameras imaging moving parts, illumination remains constant across image rows. Only 1D compensation is required. In this case, the reference illumination is specified as a vector, which is replicated across all image rows.
* When a single reference image is used, the transform is analog to an adaptive (space-variant) gain or offset (Gain * Intensity or Intensity + Offset); the transform lets the reference image(s) become a specified constant value, i.e. flat field illumination.
* When two reference images are used, the transform is analog to adaptive gain and offset (Gain * Intensity + Offset); the transform let both reference images become specified constants, i.e. flat field illumination with a correct black reference.

Note. The reference image(s) should be chosen such that they contain no saturated pixel values (remain in the linear domain) and little (filtered out) noise.

EasyImage.Uniformize

Shading correction is the process of transforming the gray or color component values of an image, using one or two reference images or vectors.

Namespace: Euresys.Open_eVision

[C#]

void Uniformize(
   Euresys.Open_eVision.EROIBW8 sourceImage,
   Euresys.Open_eVision.EBW8 pixelReference,
   Euresys.Open_eVision.EROIBW8 imageReference,
   Euresys.Open_eVision.EROIBW8 destinationImage,
   bool multiplicative
)

void Uniformize(
   Euresys.Open_eVision.EROIBW16 sourceImage,
   Euresys.Open_eVision.EBW16 pixelReference,
   Euresys.Open_eVision.EROIBW16 imageReference,
   Euresys.Open_eVision.EROIBW16 destinationImage,
   bool multiplicative
)

void Uniformize(
   Euresys.Open_eVision.EROIC24 sourceImage,
   Euresys.Open_eVision.EC24 pixelReference,
   Euresys.Open_eVision.EROIC24 imageReference,
   Euresys.Open_eVision.EROIC24 destinationImage,
   bool multiplicative
)

void Uniformize(
   Euresys.Open_eVision.EROIBW8 sourceImage,
   Euresys.Open_eVision.EBW8 pixelReference,
   Euresys.Open_eVision.EBW8Vector vectorOfPixelReference,
   Euresys.Open_eVision.EROIBW8 destinationImage,
   bool multiplicative
)

void Uniformize(
   Euresys.Open_eVision.EROIBW16 sourceImage,
   Euresys.Open_eVision.EBW16 pixelReference,
   Euresys.Open_eVision.EBW16Vector vectorOfPixelReference,
   Euresys.Open_eVision.EROIBW16 destinationImage,
   bool multiplicative
)

void Uniformize(
   Euresys.Open_eVision.EROIC24 sourceImage,
   Euresys.Open_eVision.EC24 pixelReference,
   Euresys.Open_eVision.EC24Vector vectorOfPixelReference,
   Euresys.Open_eVision.EROIC24 destinationImage,
   bool multiplicative
)

void Uniformize(
   Euresys.Open_eVision.EROIBW8 sourceImage,
   Euresys.Open_eVision.EBW8 pixelLightReference,
   Euresys.Open_eVision.EROIBW8 imageLightReference,
   Euresys.Open_eVision.EBW8 pixelDarkReference,
   Euresys.Open_eVision.EROIBW8 imageDarkReference,
   Euresys.Open_eVision.EROIBW8 destinationImage
)

void Uniformize(
   Euresys.Open_eVision.EROIBW16 sourceImage,
   Euresys.Open_eVision.EBW16 pixelLightReference,
   Euresys.Open_eVision.EROIBW16 imageLightReference,
   Euresys.Open_eVision.EBW16 pixelDarkReference,
   Euresys.Open_eVision.EROIBW16 imageDarkReference,
   Euresys.Open_eVision.EROIBW16 destinationImage
)

void Uniformize(
   Euresys.Open_eVision.EROIC24 sourceImage,
   Euresys.Open_eVision.EC24 pixelLightReference,
   Euresys.Open_eVision.EROIC24 imageLightReference,
   Euresys.Open_eVision.EC24 pixelDarkReference,
   Euresys.Open_eVision.EROIC24 imageDarkReference,
   Euresys.Open_eVision.EROIC24 destinationImage
)

void Uniformize(
   Euresys.Open_eVision.EROIBW8 sourceImage,
   Euresys.Open_eVision.EBW8 pixelLightReference,
   Euresys.Open_eVision.EBW8Vector vectorOfPixelLightReference,
   Euresys.Open_eVision.EBW8 pixelDarkReference,
   Euresys.Open_eVision.EBW8Vector vectorOfPixelDarkReference,
   Euresys.Open_eVision.EROIBW8 destinationImage
)

void Uniformize(
   Euresys.Open_eVision.EROIBW16 sourceImage,
   Euresys.Open_eVision.EBW16 pixelLightReference,
   Euresys.Open_eVision.EBW16Vector vectorOfPixelLightReference,
   Euresys.Open_eVision.EBW16 pixelDarkReference,
   Euresys.Open_eVision.EBW16Vector vectorOfPixelDarkReference,
   Euresys.Open_eVision.EROIBW16 destinationImage
)

void Uniformize(
   Euresys.Open_eVision.EROIC24 sourceImage,
   Euresys.Open_eVision.EC24 pixelLightReference,
   Euresys.Open_eVision.EC24Vector vectorOfPixelLightReference,
   Euresys.Open_eVision.EC24 pixelDarkReference,
   Euresys.Open_eVision.EC24Vector vectorOfPixelDarkReference,
   Euresys.Open_eVision.EROIC24 destinationImage
)

Parameters

sourceImage

Pointer to the source image/ROI.

pixelReference

Constant value to transform the reference image or vector into.

imageReference

Pointer to the reference source image/ROI or vector.

destinationImage

Pointer to the destination image/ROI.

multiplicative

true, if the transform is multiplicative (gain); false, if the transform is additive (offset) (by default, true).

vectorOfPixelReference

Constant value to transform the reference image or vector into.

pixelLightReference

Constant value to transform the light reference image or vector into.

imageLightReference

Pointer to the light reference source image/ROI or vector.

pixelDarkReference

Constant value to transform the dark reference image/ROI or vector into.

imageDarkReference

Pointer to the dark reference source image/ROI or vector.

vectorOfPixelLightReference

Constant value to transform the light reference image or vector into.

vectorOfPixelDarkReference

Constant value to transform the dark reference image/ROI or vector into.

Remarks

The intent is to compensate for non-uniform lighting or sensor response non-uniformity by providing images of the background with no foreground object present.
In the case of area-scan cameras, the illumination can change anywhere in the field of view, requiring 2D compensation. In the case of line-scan cameras imaging moving parts, illumination remains constant across image rows. Only 1D compensation is required. In this case, the reference illumination is specified as a vector, which is replicated across all image rows.
* When a single reference image is used, the transform is analog to an adaptive (space-variant) gain or offset (Gain * Intensity or Intensity + Offset); the transform lets the reference image(s) become a specified constant value, i.e. flat field illumination.
* When two reference images are used, the transform is analog to adaptive gain and offset (Gain * Intensity + Offset); the transform let both reference images become specified constants, i.e. flat field illumination with a correct black reference.

Note. The reference image(s) should be chosen such that they contain no saturated pixel values (remain in the linear domain) and little (filtered out) noise.