View Source Evision.StructuredLight.SinusoidalPattern (Evision v0.1.28)

Link to this section Summary

Types

t()

Type that represents an StructuredLight.SinusoidalPattern struct.

Functions

Compute a wrapped phase map from sinusoidal patterns.

Compute a wrapped phase map from sinusoidal patterns.

Constructor.

Constructor.

Find correspondences between the two devices thanks to unwrapped phase maps.

Find correspondences between the two devices thanks to unwrapped phase maps.

Unwrap the wrapped phase map to remove phase ambiguities.

Unwrap the wrapped phase map to remove phase ambiguities.

Link to this section Types

@type t() :: %Evision.StructuredLight.SinusoidalPattern{ref: reference()}

Type that represents an StructuredLight.SinusoidalPattern struct.

  • ref. reference()

    The underlying erlang resource variable.

Link to this section Functions

Link to this function

computeDataModulationTerm(self, patternImages, shadowMask)

View Source
@spec computeDataModulationTerm(
  t(),
  [Evision.Mat.maybe_mat_in()],
  Evision.Mat.maybe_mat_in()
) ::
  Evision.Mat.t() | {:error, String.t()}

compute the data modulation term.

Positional Arguments
  • self: Evision.StructuredLight.SinusoidalPattern.t()

  • patternImages: [Evision.Mat].

    captured images with projected patterns.

  • shadowMask: Evision.Mat.t().

    Mask used to discard shadow regions.

Return
  • dataModulationTerm: Evision.Mat.t().

    Mat where the data modulation term is saved.

Python prototype (for reference only):

computeDataModulationTerm(patternImages, shadowMask[, dataModulationTerm]) -> dataModulationTerm
Link to this function

computeDataModulationTerm(self, patternImages, shadowMask, opts)

View Source
@spec computeDataModulationTerm(
  t(),
  [Evision.Mat.maybe_mat_in()],
  Evision.Mat.maybe_mat_in(),
  [{atom(), term()}, ...] | nil
) :: Evision.Mat.t() | {:error, String.t()}

compute the data modulation term.

Positional Arguments
  • self: Evision.StructuredLight.SinusoidalPattern.t()

  • patternImages: [Evision.Mat].

    captured images with projected patterns.

  • shadowMask: Evision.Mat.t().

    Mask used to discard shadow regions.

Return
  • dataModulationTerm: Evision.Mat.t().

    Mat where the data modulation term is saved.

Python prototype (for reference only):

computeDataModulationTerm(patternImages, shadowMask[, dataModulationTerm]) -> dataModulationTerm
Link to this function

computePhaseMap(self, patternImages)

View Source
@spec computePhaseMap(t(), [Evision.Mat.maybe_mat_in()]) ::
  {Evision.Mat.t(), Evision.Mat.t()} | {:error, String.t()}

Compute a wrapped phase map from sinusoidal patterns.

Positional Arguments
  • self: Evision.StructuredLight.SinusoidalPattern.t()

  • patternImages: [Evision.Mat].

    Input data to compute the wrapped phase map.

Keyword Arguments
  • fundamental: Evision.Mat.t().

    Fundamental matrix used to compute epipolar lines and ease the matching step.

Return
  • wrappedPhaseMap: Evision.Mat.t().

    Wrapped phase map obtained through one of the three methods.

  • shadowMask: Evision.Mat.t().

    Mask used to discard shadow regions.

Python prototype (for reference only):

computePhaseMap(patternImages[, wrappedPhaseMap[, shadowMask[, fundamental]]]) -> wrappedPhaseMap, shadowMask
Link to this function

computePhaseMap(self, patternImages, opts)

View Source
@spec computePhaseMap(
  t(),
  [Evision.Mat.maybe_mat_in()],
  [{atom(), term()}, ...] | nil
) ::
  {Evision.Mat.t(), Evision.Mat.t()} | {:error, String.t()}

Compute a wrapped phase map from sinusoidal patterns.

Positional Arguments
  • self: Evision.StructuredLight.SinusoidalPattern.t()

  • patternImages: [Evision.Mat].

    Input data to compute the wrapped phase map.

Keyword Arguments
  • fundamental: Evision.Mat.t().

    Fundamental matrix used to compute epipolar lines and ease the matching step.

Return
  • wrappedPhaseMap: Evision.Mat.t().

    Wrapped phase map obtained through one of the three methods.

  • shadowMask: Evision.Mat.t().

    Mask used to discard shadow regions.

Python prototype (for reference only):

computePhaseMap(patternImages[, wrappedPhaseMap[, shadowMask[, fundamental]]]) -> wrappedPhaseMap, shadowMask
@spec create() :: t() | {:error, String.t()}

Constructor.

Keyword Arguments
  • parameters: Evision.StructuredLight.SinusoidalPattern.Params.t().

    SinusoidalPattern parameters SinusoidalPattern::Params: width, height of the projector and patterns parameters.

Return
  • retval: Evision.StructuredLight.SinusoidalPattern.t()

Python prototype (for reference only):

create([, parameters]) -> retval
@spec create([{atom(), term()}, ...] | nil) :: t() | {:error, String.t()}

Constructor.

Keyword Arguments
  • parameters: Evision.StructuredLight.SinusoidalPattern.Params.t().

    SinusoidalPattern parameters SinusoidalPattern::Params: width, height of the projector and patterns parameters.

Return
  • retval: Evision.StructuredLight.SinusoidalPattern.t()

Python prototype (for reference only):

create([, parameters]) -> retval
Link to this function

findProCamMatches(self, projUnwrappedPhaseMap, camUnwrappedPhaseMap)

View Source
@spec findProCamMatches(t(), Evision.Mat.maybe_mat_in(), Evision.Mat.maybe_mat_in()) ::
  [Evision.Mat.t()] | {:error, String.t()}

Find correspondences between the two devices thanks to unwrapped phase maps.

Positional Arguments
  • self: Evision.StructuredLight.SinusoidalPattern.t()

  • projUnwrappedPhaseMap: Evision.Mat.t().

    Projector's unwrapped phase map.

  • camUnwrappedPhaseMap: Evision.Mat.t().

    Camera's unwrapped phase map.

Return
  • matches: [Evision.Mat].

    Images used to display correspondences map.

Python prototype (for reference only):

findProCamMatches(projUnwrappedPhaseMap, camUnwrappedPhaseMap[, matches]) -> matches
Link to this function

findProCamMatches(self, projUnwrappedPhaseMap, camUnwrappedPhaseMap, opts)

View Source
@spec findProCamMatches(
  t(),
  Evision.Mat.maybe_mat_in(),
  Evision.Mat.maybe_mat_in(),
  [{atom(), term()}, ...] | nil
) :: [Evision.Mat.t()] | {:error, String.t()}

Find correspondences between the two devices thanks to unwrapped phase maps.

Positional Arguments
  • self: Evision.StructuredLight.SinusoidalPattern.t()

  • projUnwrappedPhaseMap: Evision.Mat.t().

    Projector's unwrapped phase map.

  • camUnwrappedPhaseMap: Evision.Mat.t().

    Camera's unwrapped phase map.

Return
  • matches: [Evision.Mat].

    Images used to display correspondences map.

Python prototype (for reference only):

findProCamMatches(projUnwrappedPhaseMap, camUnwrappedPhaseMap[, matches]) -> matches
Link to this function

unwrapPhaseMap(self, wrappedPhaseMap, camSize)

View Source
@spec unwrapPhaseMap(t(), Evision.Mat.maybe_mat_in(), {number(), number()}) ::
  Evision.Mat.t() | {:error, String.t()}

Unwrap the wrapped phase map to remove phase ambiguities.

Positional Arguments
  • self: Evision.StructuredLight.SinusoidalPattern.t()

  • wrappedPhaseMap: Evision.Mat.t().

    The wrapped phase map computed from the pattern.

  • camSize: Size.

    Resolution of the camera.

Keyword Arguments
  • shadowMask: Evision.Mat.t().

    Mask used to discard shadow regions.

Return
  • unwrappedPhaseMap: Evision.Mat.t().

    The unwrapped phase map used to find correspondences between the two devices.

Python prototype (for reference only):

unwrapPhaseMap(wrappedPhaseMap, camSize[, unwrappedPhaseMap[, shadowMask]]) -> unwrappedPhaseMap
Link to this function

unwrapPhaseMap(self, wrappedPhaseMap, camSize, opts)

View Source
@spec unwrapPhaseMap(
  t(),
  Evision.Mat.maybe_mat_in(),
  {number(), number()},
  [{atom(), term()}, ...] | nil
) :: Evision.Mat.t() | {:error, String.t()}

Unwrap the wrapped phase map to remove phase ambiguities.

Positional Arguments
  • self: Evision.StructuredLight.SinusoidalPattern.t()

  • wrappedPhaseMap: Evision.Mat.t().

    The wrapped phase map computed from the pattern.

  • camSize: Size.

    Resolution of the camera.

Keyword Arguments
  • shadowMask: Evision.Mat.t().

    Mask used to discard shadow regions.

Return
  • unwrappedPhaseMap: Evision.Mat.t().

    The unwrapped phase map used to find correspondences between the two devices.

Python prototype (for reference only):

unwrapPhaseMap(wrappedPhaseMap, camSize[, unwrappedPhaseMap[, shadowMask]]) -> unwrappedPhaseMap