eVision C++ API 26.10.0-beta.2.dev
Loading...
Searching...
No Matches
eVision::Easy3D::EPhotometricStereoImager Class Reference

Manages photometric stereo reconstruction. This class can build normals, albedos, gradients, mean curvatures and gaussian curvatures images from at least 3 input images by using photometric stereo The algorithm used assumes objects are Lambertian and light sources emit parallel rays. More...

#include <eVision/Easy3D/EPhotometricStereoImager.h>

Collaboration diagram for eVision::Easy3D::EPhotometricStereoImager:

Public Member Functions

 EPhotometricStereoImager ()
 Creates an EPhotometricStereoImager object.
 EPhotometricStereoImager (const eVision::Easy3D::EPhotometricStereoImager &other)
 Creates an EPhotometricStereoImager object.
virtual ~EPhotometricStereoImager () throw ()
eVision::Easy3D::EPhotometricStereoImager & operator= (const eVision::Easy3D::EPhotometricStereoImager &other)
 Assignment operator.
void Load (const std::string &path)
 Loads the EPhotometricStereoImager. The given ESerializer must have been created for reading.
void Load (eVision::ESerializer *serializer)
 Loads the EPhotometricStereoImager. The given ESerializer must have been created for reading.
void Save (const std::string &path)
 Saves the EPhotometricStereoImager. The given ESerializer must have been created for writing.
void Save (eVision::ESerializer *serializer)
 Saves the EPhotometricStereoImager. The given ESerializer must have been created for writing.
float CalibrateFromSphere (const std::vector< eVision::EROIBW8 > &sphereImages)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const std::vector< eVision::EROIBW8 > &sphereImages, const eVision::EROIBW8 &darkImage)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const std::vector< eVision::EROIBW8 > &sphereImages, const eVision::ECircle &circle)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const std::vector< eVision::EROIBW8 > &sphereImages, const eVision::EROIBW8 &darkImage, const eVision::ECircle &circle)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const std::vector< eVision::EROIBW8 * > &sphereImages)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const std::vector< eVision::EROIBW8 * > &sphereImages, const eVision::EROIBW8 &darkImage)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const std::vector< eVision::EROIBW8 * > &sphereImages, const eVision::ECircle &circle)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const std::vector< eVision::EROIBW8 * > &sphereImages, const eVision::EROIBW8 &darkImage, const eVision::ECircle &circle)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const eVision::EROIBW8 &image1, const eVision::EROIBW8 &image2, const eVision::EROIBW8 &image3, const eVision::EROIBW8 &image4)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const eVision::EROIBW8 &image1, const eVision::EROIBW8 &image2, const eVision::EROIBW8 &image3, const eVision::EROIBW8 &image4, const eVision::EROIBW8 &darkImage)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const eVision::EROIBW8 &image1, const eVision::EROIBW8 &image2, const eVision::EROIBW8 &image3, const eVision::EROIBW8 &image4, const eVision::ECircle &circle)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
float CalibrateFromSphere (const eVision::EROIBW8 &image1, const eVision::EROIBW8 &image2, const eVision::EROIBW8 &image3, const eVision::EROIBW8 &image4, const eVision::EROIBW8 &darkImage, const eVision::ECircle &circle)
 Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.
bool IsCalibrated () const
 Returns whether the EPhotometricStereoImager is calibrated or not.
void GetCalibrationAngles (std::vector< float > &azimuths, std::vector< float > &elevations) const
 Gets the calibration angles.
std::vector< float > GetCalibrationAzimuthAngles () const
 Gets the calibration azimuth angles.
std::vector< float > GetCalibrationElevationAngles () const
 Gets the calibration elevation angles.
void SetCalibrationAngles (const std::vector< float > &azimuths, const std::vector< float > &elevations)
 Sets the calibration angles.
void ConfigureNonUniformLightingCorrection (const std::vector< eVision::EROIBW8 > &flatImages)
 Configure the non uniform lighting correction of the scene by using flat images. Photometric stereo assumes the lights of each image to be of same direction and intensity. This is however rarely the case in practice, a way to attenuate the problem is to use flat images to correct non-uniform lighting before performing photometric stereo.
void ConfigureNonUniformLightingCorrection (const std::vector< eVision::EROIBW8 > &flatImages, const eVision::EROIBW8 &darkImage)
 Configure the non uniform lighting correction of the scene by using flat images. Photometric stereo assumes the lights of each image to be of same direction and intensity. This is however rarely the case in practice, a way to attenuate the problem is to use flat images to correct non-uniform lighting before performing photometric stereo.
void ConfigureNonUniformLightingCorrection (const std::vector< eVision::EROIBW8 * > &flatImages)
 Configure the non uniform lighting correction of the scene by using flat images. Photometric stereo assumes the lights of each image to be of same direction and intensity. This is however rarely the case in practice, a way to attenuate the problem is to use flat images to correct non-uniform lighting before performing photometric stereo.
void ConfigureNonUniformLightingCorrection (const std::vector< eVision::EROIBW8 * > &flatImages, const eVision::EROIBW8 &darkImage)
 Configure the non uniform lighting correction of the scene by using flat images. Photometric stereo assumes the lights of each image to be of same direction and intensity. This is however rarely the case in practice, a way to attenuate the problem is to use flat images to correct non-uniform lighting before performing photometric stereo.
void SetEnableNonUniformLightingCorrection (bool state)
 Gets/Sets whether the correction of the non uniformity of the lighting is corrected or not (disabled by default, enabled by calling EPhotometricStereoImager::ConfigureNonUniformLightingCorrection). Disabling it increases speed.
bool GetEnableNonUniformLightingCorrection () const
 Gets/Sets whether the correction of the non uniformity of the lighting is corrected or not (disabled by default, enabled by calling EPhotometricStereoImager::ConfigureNonUniformLightingCorrection). Disabling it increases speed.
void SetGaussianBlurSigma (float sigma)
 Gets/Sets the sigma parameter of the gaussian blurring applied before computing the curvatures. Default value is 1. Sigma must be > 0.
float GetGaussianBlurSigma () const
 Gets/Sets the sigma parameter of the gaussian blurring applied before computing the curvatures. Default value is 1. Sigma must be > 0.
void Compute (const std::vector< eVision::EROIBW8 > &objectImages)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const std::vector< eVision::EROIBW8 > &objectImages, const eVision::ERegion &region)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const std::vector< eVision::EROIBW8 > &objectImages, const eVision::EROIBW8 &darkImage)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const std::vector< eVision::EROIBW8 > &objectImages, const eVision::EROIBW8 &darkImage, const eVision::ERegion &region)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const std::vector< eVision::EROIBW8 * > &objectImages)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const std::vector< eVision::EROIBW8 * > &objectImages, const eVision::ERegion &region)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const std::vector< eVision::EROIBW8 * > &objectImages, const eVision::EROIBW8 &darkImage)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const std::vector< eVision::EROIBW8 * > &objectImages, const eVision::EROIBW8 &darkImage, const eVision::ERegion &region)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const eVision::EROIBW8 &image1, const eVision::EROIBW8 &image2, const eVision::EROIBW8 &image3, const eVision::EROIBW8 &image4)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const eVision::EROIBW8 &image1, const eVision::EROIBW8 &image2, const eVision::EROIBW8 &image3, const eVision::EROIBW8 &image4, const eVision::ERegion &region)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const eVision::EROIBW8 &image1, const eVision::EROIBW8 &image2, const eVision::EROIBW8 &image3, const eVision::EROIBW8 &image4, const eVision::EROIBW8 &darkImage)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
void Compute (const eVision::EROIBW8 &image1, const eVision::EROIBW8 &image2, const eVision::EROIBW8 &image3, const eVision::EROIBW8 &image4, const eVision::EROIBW8 &darkImage, const eVision::ERegion &region)
 Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.
const eVision::EImageC24 & GetNormals () const
 Gets the normals as an EImageC24.
const eVision::EImageBW8 & GetAlbedos (eVision::Easy3D::EPhotometricStereoContrast contrast)
 Gets the albedos as an EImageBW8. Albedos are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 0.
const eVision::EImageBW8 & GetAlbedos (eVision::Easy3D::EPhotometricStereoContrast contrast, float maxValue)
 Gets the albedos as an EImageBW8. Albedos are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 0.
const eVision::EImageBW8 & GetGradientsX ()
 Gets the gradients on the X axis as an EImageBW8.
const eVision::EImageBW8 & GetGradientsY ()
 Gets the gradients on the Y axis as an EImageBW8.
const eVision::EImageBW8 & ComputeGaussianCurvatures (eVision::Easy3D::EPhotometricStereoContrast contrast)
 Computes the gaussian curvatures as an EImageBW8. Gaussian curvatures are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 128. See EPhotometricStereoContrast for the different conversions.
const eVision::EImageBW8 & ComputeGaussianCurvatures (eVision::Easy3D::EPhotometricStereoContrast contrast, float maxAbsoluteValue)
 Computes the gaussian curvatures as an EImageBW8. Gaussian curvatures are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 128. See EPhotometricStereoContrast for the different conversions.
const eVision::EImageBW8 & ComputeMeanCurvatures (eVision::Easy3D::EPhotometricStereoContrast contrast)
 Computes the mean curvatures as an EImageBW8. Mean curvatures are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 128. See EPhotometricStereoContrast for the different conversions.
const eVision::EImageBW8 & ComputeMeanCurvatures (eVision::Easy3D::EPhotometricStereoContrast contrast, float maxAbsoluteValue)
 Computes the mean curvatures as an EImageBW8. Mean curvatures are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 128. See EPhotometricStereoContrast for the different conversions.
const eVision::Easy3D::EZMap8 & ComputeHeightMap ()
 Computes the height at each pixel as an EZMap8 by integrating the surface gradients.
 EPhotometricStereoImager (CppWrapperInternal::InternalConstructor)

Public Attributes

CppWrapperInternal::WrappedClass wrappedClass_

Detailed Description

Manages photometric stereo reconstruction. This class can build normals, albedos, gradients, mean curvatures and gaussian curvatures images from at least 3 input images by using photometric stereo The algorithm used assumes objects are Lambertian and light sources emit parallel rays.

License(s): Easy3D

Constructor & Destructor Documentation

◆ EPhotometricStereoImager() [1/3]

eVision::Easy3D::EPhotometricStereoImager::EPhotometricStereoImager ( )

Creates an EPhotometricStereoImager object.

◆ EPhotometricStereoImager() [2/3]

eVision::Easy3D::EPhotometricStereoImager::EPhotometricStereoImager ( const eVision::Easy3D::EPhotometricStereoImager & other)

Creates an EPhotometricStereoImager object.

Parameters
otherAnother EPhotometricStereoImager.

◆ ~EPhotometricStereoImager()

eVision::Easy3D::EPhotometricStereoImager::~EPhotometricStereoImager ( )
throw ( )
virtual

◆ EPhotometricStereoImager() [3/3]

eVision::Easy3D::EPhotometricStereoImager::EPhotometricStereoImager ( CppWrapperInternal::InternalConstructor )

Member Function Documentation

◆ CalibrateFromSphere() [1/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const eVision::EROIBW8 & image1,
const eVision::EROIBW8 & image2,
const eVision::EROIBW8 & image3,
const eVision::EROIBW8 & image4 )

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
image1The first EROIBW8 of a sphere in a 4-image configuration.
image2The second EROIBW8 of a sphere in a 4-image configuration.
image3The third EROIBW8 of a sphere in a 4-image configuration.
image4The fourth EROIBW8 of a sphere in a 4-image configuration.

◆ CalibrateFromSphere() [2/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const eVision::EROIBW8 & image1,
const eVision::EROIBW8 & image2,
const eVision::EROIBW8 & image3,
const eVision::EROIBW8 & image4,
const eVision::ECircle & circle )

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
image1The first EROIBW8 of a sphere in a 4-image configuration.
image2The second EROIBW8 of a sphere in a 4-image configuration.
image3The third EROIBW8 of a sphere in a 4-image configuration.
image4The fourth EROIBW8 of a sphere in a 4-image configuration.
circleAn ECircle that represents the position of the sphere. Default: automatically computed.

◆ CalibrateFromSphere() [3/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const eVision::EROIBW8 & image1,
const eVision::EROIBW8 & image2,
const eVision::EROIBW8 & image3,
const eVision::EROIBW8 & image4,
const eVision::EROIBW8 & darkImage )

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
image1The first EROIBW8 of a sphere in a 4-image configuration.
image2The second EROIBW8 of a sphere in a 4-image configuration.
image3The third EROIBW8 of a sphere in a 4-image configuration.
image4The fourth EROIBW8 of a sphere in a 4-image configuration.
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the calibration especially if the image is not dark when there is no illumination. Otherwise, it is not useful.

◆ CalibrateFromSphere() [4/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const eVision::EROIBW8 & image1,
const eVision::EROIBW8 & image2,
const eVision::EROIBW8 & image3,
const eVision::EROIBW8 & image4,
const eVision::EROIBW8 & darkImage,
const eVision::ECircle & circle )

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
image1The first EROIBW8 of a sphere in a 4-image configuration.
image2The second EROIBW8 of a sphere in a 4-image configuration.
image3The third EROIBW8 of a sphere in a 4-image configuration.
image4The fourth EROIBW8 of a sphere in a 4-image configuration.
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the calibration especially if the image is not dark when there is no illumination. Otherwise, it is not useful.
circleAn ECircle that represents the position of the sphere. Default: automatically computed.

◆ CalibrateFromSphere() [5/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const std::vector< eVision::EROIBW8 * > & sphereImages)

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
sphereImagesA vector of EROIBW8 of a sphere.

◆ CalibrateFromSphere() [6/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const std::vector< eVision::EROIBW8 * > & sphereImages,
const eVision::ECircle & circle )

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
sphereImagesA vector of EROIBW8 of a sphere.
circleAn ECircle that represents the position of the sphere. Default: automatically computed.

◆ CalibrateFromSphere() [7/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const std::vector< eVision::EROIBW8 * > & sphereImages,
const eVision::EROIBW8 & darkImage )

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
sphereImagesA vector of EROIBW8 of a sphere.
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the calibration especially if the image is not dark when there is no illumination. Otherwise, it is not useful.

◆ CalibrateFromSphere() [8/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const std::vector< eVision::EROIBW8 * > & sphereImages,
const eVision::EROIBW8 & darkImage,
const eVision::ECircle & circle )

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
sphereImagesA vector of EROIBW8 of a sphere.
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the calibration especially if the image is not dark when there is no illumination. Otherwise, it is not useful.
circleAn ECircle that represents the position of the sphere. Default: automatically computed.

◆ CalibrateFromSphere() [9/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const std::vector< eVision::EROIBW8 > & sphereImages)

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
sphereImagesA vector of EROIBW8 of a sphere.

◆ CalibrateFromSphere() [10/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const std::vector< eVision::EROIBW8 > & sphereImages,
const eVision::ECircle & circle )

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
sphereImagesA vector of EROIBW8 of a sphere.
circleAn ECircle that represents the position of the sphere. Default: automatically computed.

◆ CalibrateFromSphere() [11/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const std::vector< eVision::EROIBW8 > & sphereImages,
const eVision::EROIBW8 & darkImage )

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
sphereImagesA vector of EROIBW8 of a sphere.
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the calibration especially if the image is not dark when there is no illumination. Otherwise, it is not useful.

◆ CalibrateFromSphere() [12/12]

float eVision::Easy3D::EPhotometricStereoImager::CalibrateFromSphere ( const std::vector< eVision::EROIBW8 > & sphereImages,
const eVision::EROIBW8 & darkImage,
const eVision::ECircle & circle )

Calibrates the light directions on several images (at least 3) of a sphere (or half sphere) and returns a score indicating the reliability of the calibration.

Parameters
sphereImagesA vector of EROIBW8 of a sphere.
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the calibration especially if the image is not dark when there is no illumination. Otherwise, it is not useful.
circleAn ECircle that represents the position of the sphere. Default: automatically computed.

◆ Compute() [1/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const eVision::EROIBW8 & image1,
const eVision::EROIBW8 & image2,
const eVision::EROIBW8 & image3,
const eVision::EROIBW8 & image4 )

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
image1The first EROIBW8 of the object in a 4-image configuration.
image2The second EROIBW8 of the object in a 4-image configuration.
image3The third EROIBW8 of the object in a 4-image configuration.
image4The fourth EROIBW8 of the object in a 4-image configuration.

◆ Compute() [2/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const eVision::EROIBW8 & image1,
const eVision::EROIBW8 & image2,
const eVision::EROIBW8 & image3,
const eVision::EROIBW8 & image4,
const eVision::ERegion & region )

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
image1The first EROIBW8 of the object in a 4-image configuration.
image2The second EROIBW8 of the object in a 4-image configuration.
image3The third EROIBW8 of the object in a 4-image configuration.
image4The fourth EROIBW8 of the object in a 4-image configuration.
regionERegion within which the computation will be done.

◆ Compute() [3/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const eVision::EROIBW8 & image1,
const eVision::EROIBW8 & image2,
const eVision::EROIBW8 & image3,
const eVision::EROIBW8 & image4,
const eVision::EROIBW8 & darkImage )

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
image1The first EROIBW8 of the object in a 4-image configuration.
image2The second EROIBW8 of the object in a 4-image configuration.
image3The third EROIBW8 of the object in a 4-image configuration.
image4The fourth EROIBW8 of the object in a 4-image configuration.
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the results especially if the image is not dark when there is no illumination. Otherwise, it is not useful.

◆ Compute() [4/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const eVision::EROIBW8 & image1,
const eVision::EROIBW8 & image2,
const eVision::EROIBW8 & image3,
const eVision::EROIBW8 & image4,
const eVision::EROIBW8 & darkImage,
const eVision::ERegion & region )

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
image1The first EROIBW8 of the object in a 4-image configuration.
image2The second EROIBW8 of the object in a 4-image configuration.
image3The third EROIBW8 of the object in a 4-image configuration.
image4The fourth EROIBW8 of the object in a 4-image configuration.
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the results especially if the image is not dark when there is no illumination. Otherwise, it is not useful.
regionERegion within which the computation will be done.

◆ Compute() [5/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const std::vector< eVision::EROIBW8 * > & objectImages)

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
objectImagesA vector of EROIBW8 of the object to reconstruct. The images must be in the same order as the calibration images/angles with respect to the light direction. If flat images are used, flat and object images must have the same size

◆ Compute() [6/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const std::vector< eVision::EROIBW8 * > & objectImages,
const eVision::ERegion & region )

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
objectImagesA vector of EROIBW8 of the object to reconstruct. The images must be in the same order as the calibration images/angles with respect to the light direction. If flat images are used, flat and object images must have the same size
regionERegion within which the computation will be done.

◆ Compute() [7/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const std::vector< eVision::EROIBW8 * > & objectImages,
const eVision::EROIBW8 & darkImage )

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
objectImagesA vector of EROIBW8 of the object to reconstruct. The images must be in the same order as the calibration images/angles with respect to the light direction. If flat images are used, flat and object images must have the same size
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the results especially if the image is not dark when there is no illumination. Otherwise, it is not useful.

◆ Compute() [8/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const std::vector< eVision::EROIBW8 * > & objectImages,
const eVision::EROIBW8 & darkImage,
const eVision::ERegion & region )

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
objectImagesA vector of EROIBW8 of the object to reconstruct. The images must be in the same order as the calibration images/angles with respect to the light direction. If flat images are used, flat and object images must have the same size
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the results especially if the image is not dark when there is no illumination. Otherwise, it is not useful.
regionERegion within which the computation will be done.

◆ Compute() [9/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const std::vector< eVision::EROIBW8 > & objectImages)

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
objectImagesA vector of EROIBW8 of the object to reconstruct. The images must be in the same order as the calibration images/angles with respect to the light direction. If flat images are used, flat and object images must have the same size

◆ Compute() [10/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const std::vector< eVision::EROIBW8 > & objectImages,
const eVision::ERegion & region )

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
objectImagesA vector of EROIBW8 of the object to reconstruct. The images must be in the same order as the calibration images/angles with respect to the light direction. If flat images are used, flat and object images must have the same size
regionERegion within which the computation will be done.

◆ Compute() [11/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const std::vector< eVision::EROIBW8 > & objectImages,
const eVision::EROIBW8 & darkImage )

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
objectImagesA vector of EROIBW8 of the object to reconstruct. The images must be in the same order as the calibration images/angles with respect to the light direction. If flat images are used, flat and object images must have the same size
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the results especially if the image is not dark when there is no illumination. Otherwise, it is not useful.

◆ Compute() [12/12]

void eVision::Easy3D::EPhotometricStereoImager::Compute ( const std::vector< eVision::EROIBW8 > & objectImages,
const eVision::EROIBW8 & darkImage,
const eVision::ERegion & region )

Compute the different photometric stereo images of an object. To retrieve them, see EPhotometricStereoImager::GetNormals, EPhotometricStereoImager::GetAlbedos, EPhotometricStereoImager::GetGradientsX, EPhotometricStereoImager::GetGradientsY, EPhotometricStereoImager::ComputeGaussianCurvatures and EPhotometricStereoImager::ComputeMeanCurvatures.

Parameters
objectImagesA vector of EROIBW8 of the object to reconstruct. The images must be in the same order as the calibration images/angles with respect to the light direction. If flat images are used, flat and object images must have the same size
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the results especially if the image is not dark when there is no illumination. Otherwise, it is not useful.
regionERegion within which the computation will be done.

◆ ComputeGaussianCurvatures() [1/2]

const eVision::EImageBW8 & eVision::Easy3D::EPhotometricStereoImager::ComputeGaussianCurvatures ( eVision::Easy3D::EPhotometricStereoContrast contrast)

Computes the gaussian curvatures as an EImageBW8. Gaussian curvatures are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 128. See EPhotometricStereoContrast for the different conversions.

Parameters
contrastan EPhotometricStereoContrast

Both gaussian and mean curvatures are computed in this method and are cached to avoid unnecessary computations.

◆ ComputeGaussianCurvatures() [2/2]

const eVision::EImageBW8 & eVision::Easy3D::EPhotometricStereoImager::ComputeGaussianCurvatures ( eVision::Easy3D::EPhotometricStereoContrast contrast,
float maxAbsoluteValue )

Computes the gaussian curvatures as an EImageBW8. Gaussian curvatures are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 128. See EPhotometricStereoContrast for the different conversions.

Parameters
contrastan EPhotometricStereoContrast
maxAbsoluteValuewhen contrast is EPhotometricStereoContrast_FixedRange, this parameter can be used to specify the maximal floating point value for the gaussian curvatures, otherwise it is ignored. All values outside of [-maxAbsoluteValue, +maxAbsoluteValue] are clipped. maxAbsoluteValue must be positive and defaults to 2.

Both gaussian and mean curvatures are computed in this method and are cached to avoid unnecessary computations.

◆ ComputeHeightMap()

const eVision::Easy3D::EZMap8 & eVision::Easy3D::EPhotometricStereoImager::ComputeHeightMap ( )

Computes the height at each pixel as an EZMap8 by integrating the surface gradients.

◆ ComputeMeanCurvatures() [1/2]

const eVision::EImageBW8 & eVision::Easy3D::EPhotometricStereoImager::ComputeMeanCurvatures ( eVision::Easy3D::EPhotometricStereoContrast contrast)

Computes the mean curvatures as an EImageBW8. Mean curvatures are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 128. See EPhotometricStereoContrast for the different conversions.

Parameters
contrastan EPhotometricStereoContrast

Both mean and gaussian curvatures are computed in this method and are cached to avoid unnecessary computations.

◆ ComputeMeanCurvatures() [2/2]

const eVision::EImageBW8 & eVision::Easy3D::EPhotometricStereoImager::ComputeMeanCurvatures ( eVision::Easy3D::EPhotometricStereoContrast contrast,
float maxAbsoluteValue )

Computes the mean curvatures as an EImageBW8. Mean curvatures are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 128. See EPhotometricStereoContrast for the different conversions.

Parameters
contrastan EPhotometricStereoContrast
maxAbsoluteValuewhen contrast is EPhotometricStereoContrast_FixedRange, this parameter can be used to specify the maximal floating point value for the mean curvatures, otherwise it is ignored. All values outside of [-maxAbsoluteValue, +maxAbsoluteValue] are clipped. maxAbsoluteValue must be positive and defaults to 3.

Both mean and gaussian curvatures are computed in this method and are cached to avoid unnecessary computations.

◆ ConfigureNonUniformLightingCorrection() [1/4]

void eVision::Easy3D::EPhotometricStereoImager::ConfigureNonUniformLightingCorrection ( const std::vector< eVision::EROIBW8 * > & flatImages)

Configure the non uniform lighting correction of the scene by using flat images. Photometric stereo assumes the lights of each image to be of same direction and intensity. This is however rarely the case in practice, a way to attenuate the problem is to use flat images to correct non-uniform lighting before performing photometric stereo.

Parameters
flatImagesA vector of EROIBW8 of the flat images. The images must be in the same order as the calibration images/angles with respect to the light direction.

◆ ConfigureNonUniformLightingCorrection() [2/4]

void eVision::Easy3D::EPhotometricStereoImager::ConfigureNonUniformLightingCorrection ( const std::vector< eVision::EROIBW8 * > & flatImages,
const eVision::EROIBW8 & darkImage )

Configure the non uniform lighting correction of the scene by using flat images. Photometric stereo assumes the lights of each image to be of same direction and intensity. This is however rarely the case in practice, a way to attenuate the problem is to use flat images to correct non-uniform lighting before performing photometric stereo.

Parameters
flatImagesA vector of EROIBW8 of the flat images. The images must be in the same order as the calibration images/angles with respect to the light direction.
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the results especially if the image is not dark when there is no illumination. Otherwise, it is not useful.

◆ ConfigureNonUniformLightingCorrection() [3/4]

void eVision::Easy3D::EPhotometricStereoImager::ConfigureNonUniformLightingCorrection ( const std::vector< eVision::EROIBW8 > & flatImages)

Configure the non uniform lighting correction of the scene by using flat images. Photometric stereo assumes the lights of each image to be of same direction and intensity. This is however rarely the case in practice, a way to attenuate the problem is to use flat images to correct non-uniform lighting before performing photometric stereo.

Parameters
flatImagesA vector of EROIBW8 of the flat images. The images must be in the same order as the calibration images/angles with respect to the light direction.

◆ ConfigureNonUniformLightingCorrection() [4/4]

void eVision::Easy3D::EPhotometricStereoImager::ConfigureNonUniformLightingCorrection ( const std::vector< eVision::EROIBW8 > & flatImages,
const eVision::EROIBW8 & darkImage )

Configure the non uniform lighting correction of the scene by using flat images. Photometric stereo assumes the lights of each image to be of same direction and intensity. This is however rarely the case in practice, a way to attenuate the problem is to use flat images to correct non-uniform lighting before performing photometric stereo.

Parameters
flatImagesA vector of EROIBW8 of the flat images. The images must be in the same order as the calibration images/angles with respect to the light direction.
darkImageAn image of the object when there is no specific illumination. This argument can help to improve the results especially if the image is not dark when there is no illumination. Otherwise, it is not useful.

◆ GetAlbedos() [1/2]

const eVision::EImageBW8 & eVision::Easy3D::EPhotometricStereoImager::GetAlbedos ( eVision::Easy3D::EPhotometricStereoContrast contrast)

Gets the albedos as an EImageBW8. Albedos are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 0.

Parameters
contrastan EPhotometricStereoContrast

Albedos are computed in EPhotometricStereoImager::Compute.

◆ GetAlbedos() [2/2]

const eVision::EImageBW8 & eVision::Easy3D::EPhotometricStereoImager::GetAlbedos ( eVision::Easy3D::EPhotometricStereoContrast contrast,
float maxValue )

Gets the albedos as an EImageBW8. Albedos are inherently floating point images so a conversion must be specified. In all cases, a floating point value of 0 translates to an EBW8 value of 0.

Parameters
contrastan EPhotometricStereoContrast
maxValuewhen contrast is EPhotometricStereoContrast_FixedRange, this parameter can be used to specify the maximal floating point value for the albedos, otherwise it is ignored. All values bigger than the parameter are clipped. maxValue must be positive and defaults to 200.

Albedos are computed in EPhotometricStereoImager::Compute.

◆ GetCalibrationAngles()

void eVision::Easy3D::EPhotometricStereoImager::GetCalibrationAngles ( std::vector< float > & azimuths,
std::vector< float > & elevations ) const

Gets the calibration angles.

Parameters
azimuthsThe vector of azimuth angles to retrieve
elevationsThe vector of elevation angles to retrieve

When facing the image, the axis x points right, y points top and z points towards the camera. Azimuth angles are oriented trigonometrically around the z axis. A light source on the right of the image would have an azimuth of 0 degrees. One on top would have an azimuth of 90 degrees. Elevation is the angle formed by the base plane and the light source. A light source on the horizon would have an elevation of 0 degrees. One on the camera would have an elevation of 90 degrees.

◆ GetCalibrationAzimuthAngles()

std::vector< float > eVision::Easy3D::EPhotometricStereoImager::GetCalibrationAzimuthAngles ( ) const

Gets the calibration azimuth angles.

When facing the image, the axis x points right, y points top and z points towards the camera. Azimuth angles are oriented trigonometrically around the z axis. A light source on the right of the image would have an azimuth of 0 degrees. One on top would have an azimuth of 90 degrees.

◆ GetCalibrationElevationAngles()

std::vector< float > eVision::Easy3D::EPhotometricStereoImager::GetCalibrationElevationAngles ( ) const

Gets the calibration elevation angles.

When facing the image, the axis x points right, y points top and z points towards the camera. Elevation is the angle formed by the base plane and the light source. A light source on the horizon would have an elevation of 0 degrees. One on the camera would have an elevation of 90 degrees.

◆ GetEnableNonUniformLightingCorrection()

bool eVision::Easy3D::EPhotometricStereoImager::GetEnableNonUniformLightingCorrection ( ) const

Gets/Sets whether the correction of the non uniformity of the lighting is corrected or not (disabled by default, enabled by calling EPhotometricStereoImager::ConfigureNonUniformLightingCorrection). Disabling it increases speed.

It must be configured (EPhotometricStereoImager::ConfigureNonUniformLightingCorrection) before being enabled.

◆ GetGaussianBlurSigma()

float eVision::Easy3D::EPhotometricStereoImager::GetGaussianBlurSigma ( ) const

Gets/Sets the sigma parameter of the gaussian blurring applied before computing the curvatures. Default value is 1. Sigma must be > 0.

The bigger the sigma, the longer processing will take.

◆ GetGradientsX()

const eVision::EImageBW8 & eVision::Easy3D::EPhotometricStereoImager::GetGradientsX ( )

Gets the gradients on the X axis as an EImageBW8.

Gradients on the X axis are computed in EPhotometricStereoImager::Compute.

◆ GetGradientsY()

const eVision::EImageBW8 & eVision::Easy3D::EPhotometricStereoImager::GetGradientsY ( )

Gets the gradients on the Y axis as an EImageBW8.

Gradients on the Y axis are computed in EPhotometricStereoImager::Compute.

◆ GetNormals()

const eVision::EImageC24 & eVision::Easy3D::EPhotometricStereoImager::GetNormals ( ) const

Gets the normals as an EImageC24.

Normals are computed in EPhotometricStereoImager::Compute.

◆ IsCalibrated()

bool eVision::Easy3D::EPhotometricStereoImager::IsCalibrated ( ) const

Returns whether the EPhotometricStereoImager is calibrated or not.

◆ Load() [1/2]

void eVision::Easy3D::EPhotometricStereoImager::Load ( const std::string & path)

Loads the EPhotometricStereoImager. The given ESerializer must have been created for reading.

Parameters
pathThe file path.

Neither photometric stereo results nor intermediary computations are serialized. Thus, results of a call to EPhotometricStereoImager::Compute performed before serialization cannot be retrieved after serialization. On the other hand, the results of the calibration and the NonUniformLightingCorrection are serialized and can be used again.

◆ Load() [2/2]

void eVision::Easy3D::EPhotometricStereoImager::Load ( eVision::ESerializer * serializer)

Loads the EPhotometricStereoImager. The given ESerializer must have been created for reading.

Parameters
serializerThe serializer.

Neither photometric stereo results nor intermediary computations are serialized. Thus, results of a call to EPhotometricStereoImager::Compute performed before serialization cannot be retrieved after serialization. On the other hand, the results of the calibration and the NonUniformLightingCorrection are serialized and can be used again.

◆ operator=()

eVision::Easy3D::EPhotometricStereoImager & eVision::Easy3D::EPhotometricStereoImager::operator= ( const eVision::Easy3D::EPhotometricStereoImager & other)

Assignment operator.

Parameters
otherAnother EPhotometricStereoImager.

◆ Save() [1/2]

void eVision::Easy3D::EPhotometricStereoImager::Save ( const std::string & path)

Saves the EPhotometricStereoImager. The given ESerializer must have been created for writing.

Parameters
pathThe file path.

Neither photometric stereo results nor intermediary computations are serialized. Thus, results of a call to EPhotometricStereoImager::Compute performed before serialization cannot be retrieved after serialization. On the other hand, the results of the calibration and the NonUniformLightingCorrection are serialized and can be used again.

◆ Save() [2/2]

void eVision::Easy3D::EPhotometricStereoImager::Save ( eVision::ESerializer * serializer)

Saves the EPhotometricStereoImager. The given ESerializer must have been created for writing.

Parameters
serializerThe ESerializer object that is written to.

Neither photometric stereo results nor intermediary computations are serialized. Thus, results of a call to EPhotometricStereoImager::Compute performed before serialization cannot be retrieved after serialization. On the other hand, the results of the calibration and the NonUniformLightingCorrection are serialized and can be used again.

◆ SetCalibrationAngles()

void eVision::Easy3D::EPhotometricStereoImager::SetCalibrationAngles ( const std::vector< float > & azimuths,
const std::vector< float > & elevations )

Sets the calibration angles.

Parameters
azimuthsThe vector of azimuth angles to set
elevationsThe vector of elevation angles to set

When facing the image, the axis x points right, y points top and z points towards the camera. Azimuth angles are oriented trigonometrically around the z axis. A light source on the right of the image would have an azimuth of 0 degrees. One on top would have an azimuth of 90 degrees. Elevation is the angle formed by the base plane and the light source. A light source on the horizon would have an elevation of 0 degrees. One on the camera would have an elevation of 90 degrees.

◆ SetEnableNonUniformLightingCorrection()

void eVision::Easy3D::EPhotometricStereoImager::SetEnableNonUniformLightingCorrection ( bool state)

Gets/Sets whether the correction of the non uniformity of the lighting is corrected or not (disabled by default, enabled by calling EPhotometricStereoImager::ConfigureNonUniformLightingCorrection). Disabling it increases speed.

Parameters
statewhether the correction is enabled or not

It must be configured (EPhotometricStereoImager::ConfigureNonUniformLightingCorrection) before being enabled.

◆ SetGaussianBlurSigma()

void eVision::Easy3D::EPhotometricStereoImager::SetGaussianBlurSigma ( float sigma)

Gets/Sets the sigma parameter of the gaussian blurring applied before computing the curvatures. Default value is 1. Sigma must be > 0.

Parameters
sigmasigma parameter of the gaussian blur

The bigger the sigma, the longer processing will take.

Member Data Documentation

◆ wrappedClass_

CppWrapperInternal::WrappedClass eVision::Easy3D::EPhotometricStereoImager::wrappedClass_