View Source Evision.Odometry (Evision v1.0.0-rc.0)

Summary

Types

t()

Type that represents an Odometry struct.

Functions

Variant 1:

Compute Rigid Transformation between two frames so that Rt * src = dst

Variant 1:

Compute Rigid Transformation between two frames so that Rt * src = dst

Compute Rigid Transformation between two frames so that Rt * src = dst

Compute Rigid Transformation between two frames so that Rt * src = dst

Get the normals computer object used for normals calculation (if presented). The normals computer is generated at first need during prepareFrame when normals are required for the ICP algorithm but not presented by a user. Re-generated each time the related settings change or a new frame arrives with the different size.

Odometry

Types

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

Type that represents an Odometry struct.

  • ref. reference()

    The underlying erlang resource variable.

Functions

@spec compute(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

compute(self, srcDepth, dstDepth)

View Source
@spec compute(t(), Evision.Mat.maybe_mat_in(), Evision.Mat.maybe_mat_in()) ::
  Evision.Mat.t() | false | {:error, String.t()}
@spec compute(t(), Evision.OdometryFrame.t(), Evision.OdometryFrame.t()) ::
  Evision.Mat.t() | false | {:error, String.t()}

Variant 1:

Compute Rigid Transformation between two frames so that Rt * src = dst

Positional Arguments
  • self: Evision.Odometry.t()

  • srcDepth: Evision.Mat.

    source depth ("original" image)

  • dstDepth: Evision.Mat.

    destination depth ("rotated" image)

Return
  • retval: bool

  • rt: Evision.Mat.t().

    Rigid transformation, which will be calculated, in form: { R_11 R_12 R_13 t_1 R_21 R_22 R_23 t_2 R_31 R_32 R_33 t_3 0 0 0 1 }

@return true on success, false if failed to find the transformation

Python prototype (for reference only):

compute(srcDepth, dstDepth[, Rt]) -> retval, Rt

Variant 2:

compute

Positional Arguments
Return
  • retval: bool

  • rt: Evision.Mat.t().

    Rigid transformation, which will be calculated, in form: { R_11 R_12 R_13 t_1 R_21 R_22 R_23 t_2 R_31 R_32 R_33 t_3 0 0 0 1 }

Compute Rigid Transformation between two frames so that Rt * src = dst Both frames, source and destination, should have been prepared by calling prepareFrame() first @return true on success, false if failed to find the transformation

Python prototype (for reference only):

compute(srcFrame, dstFrame[, Rt]) -> retval, Rt
Link to this function

compute(self, srcDepth, dstDepth, opts)

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

Variant 1:

Compute Rigid Transformation between two frames so that Rt * src = dst

Positional Arguments
  • self: Evision.Odometry.t()

  • srcDepth: Evision.Mat.

    source depth ("original" image)

  • dstDepth: Evision.Mat.

    destination depth ("rotated" image)

Return
  • retval: bool

  • rt: Evision.Mat.t().

    Rigid transformation, which will be calculated, in form: { R_11 R_12 R_13 t_1 R_21 R_22 R_23 t_2 R_31 R_32 R_33 t_3 0 0 0 1 }

@return true on success, false if failed to find the transformation

Python prototype (for reference only):

compute(srcDepth, dstDepth[, Rt]) -> retval, Rt

Variant 2:

compute

Positional Arguments
Return
  • retval: bool

  • rt: Evision.Mat.t().

    Rigid transformation, which will be calculated, in form: { R_11 R_12 R_13 t_1 R_21 R_22 R_23 t_2 R_31 R_32 R_33 t_3 0 0 0 1 }

Compute Rigid Transformation between two frames so that Rt * src = dst Both frames, source and destination, should have been prepared by calling prepareFrame() first @return true on success, false if failed to find the transformation

Python prototype (for reference only):

compute(srcFrame, dstFrame[, Rt]) -> retval, Rt
Link to this function

compute(self, srcDepth, srcRGB, dstDepth, dstRGB)

View Source

Compute Rigid Transformation between two frames so that Rt * src = dst

Positional Arguments
Return
  • retval: bool

  • rt: Evision.Mat.t().

    Rigid transformation, which will be calculated, in form: { R_11 R_12 R_13 t_1 R_21 R_22 R_23 t_2 R_31 R_32 R_33 t_3 0 0 0 1 }

@return true on success, false if failed to find the transformation

Python prototype (for reference only):

compute(srcDepth, srcRGB, dstDepth, dstRGB[, Rt]) -> retval, Rt
Link to this function

compute(self, srcDepth, srcRGB, dstDepth, dstRGB, opts)

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

Compute Rigid Transformation between two frames so that Rt * src = dst

Positional Arguments
Return
  • retval: bool

  • rt: Evision.Mat.t().

    Rigid transformation, which will be calculated, in form: { R_11 R_12 R_13 t_1 R_21 R_22 R_23 t_2 R_31 R_32 R_33 t_3 0 0 0 1 }

@return true on success, false if failed to find the transformation

Python prototype (for reference only):

compute(srcDepth, srcRGB, dstDepth, dstRGB[, Rt]) -> retval, Rt
Link to this function

getNormalsComputer(named_args)

View Source
@spec getNormalsComputer(Keyword.t()) :: any() | {:error, String.t()}
@spec getNormalsComputer(t()) :: Evision.RgbdNormals.t() | {:error, String.t()}

Get the normals computer object used for normals calculation (if presented). The normals computer is generated at first need during prepareFrame when normals are required for the ICP algorithm but not presented by a user. Re-generated each time the related settings change or a new frame arrives with the different size.

Positional Arguments
  • self: Evision.Odometry.t()
Return
  • retval: Evision.RgbdNormals.t()

Python prototype (for reference only):

getNormalsComputer() -> retval
@spec odometry() :: t() | {:error, String.t()}

Odometry

Return
  • self: Evision.Odometry.t()

Python prototype (for reference only):

Odometry() -> <Odometry object>
@spec odometry(Keyword.t()) :: any() | {:error, String.t()}
@spec odometry(Evision.OdometryType.enum()) :: t() | {:error, String.t()}

Odometry

Positional Arguments
  • otype: OdometryType
Return
  • self: Evision.Odometry.t()

Python prototype (for reference only):

Odometry(otype) -> <Odometry object>
Link to this function

odometry(otype, settings, algtype)

View Source

Odometry

Positional Arguments
Return
  • self: Evision.Odometry.t()

Python prototype (for reference only):

Odometry(otype, settings, algtype) -> <Odometry object>
Link to this function

prepareFrame(named_args)

View Source
@spec prepareFrame(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

prepareFrame(self, frame)

View Source
@spec prepareFrame(t(), Evision.OdometryFrame.t()) :: t() | {:error, String.t()}

prepareFrame

Positional Arguments
  • self: Evision.Odometry.t()

  • frame: Evision.OdometryFrame.

    odometry prepare this frame as src frame and dst frame simultaneously

Prepare frame for odometry calculation

Python prototype (for reference only):

prepareFrame(frame) -> None
Link to this function

prepareFrames(named_args)

View Source
@spec prepareFrames(Keyword.t()) :: any() | {:error, String.t()}
Link to this function

prepareFrames(self, srcFrame, dstFrame)

View Source
@spec prepareFrames(t(), Evision.OdometryFrame.t(), Evision.OdometryFrame.t()) ::
  t() | {:error, String.t()}

prepareFrames

Positional Arguments

Prepare frame for odometry calculation

Python prototype (for reference only):

prepareFrames(srcFrame, dstFrame) -> None