View Source Evision.Odometry (Evision v1.0.0-rc.0)
Summary
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
Odometry
Odometry
prepareFrame
prepareFrames
Types
@type t() :: %Evision.Odometry{ref: reference()}
Type that represents an Odometry struct.
ref.
reference()The underlying erlang resource variable.
Functions
@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:
boolrt:
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, RtVariant 2:
compute
Positional Arguments
self:
Evision.Odometry.t()srcFrame:
Evision.OdometryFrame.src frame ("original" image)
dstFrame:
Evision.OdometryFrame.dst frame ("rotated" image)
Return
retval:
boolrt:
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
@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:
boolrt:
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, RtVariant 2:
compute
Positional Arguments
self:
Evision.Odometry.t()srcFrame:
Evision.OdometryFrame.src frame ("original" image)
dstFrame:
Evision.OdometryFrame.dst frame ("rotated" image)
Return
retval:
boolrt:
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
@spec compute( t(), Evision.Mat.maybe_mat_in(), Evision.Mat.maybe_mat_in(), Evision.Mat.maybe_mat_in(), Evision.Mat.maybe_mat_in() ) :: Evision.Mat.t() | false | {:error, String.t()}
Compute Rigid Transformation between two frames so that Rt * src = dst
Positional Arguments
self:
Evision.Odometry.t()srcDepth:
Evision.Mat.source depth ("original" image)
srcRGB:
Evision.Mat.source RGB
dstDepth:
Evision.Mat.destination depth ("rotated" image)
dstRGB:
Evision.Mat.destination RGB
Return
retval:
boolrt:
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
@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
self:
Evision.Odometry.t()srcDepth:
Evision.Mat.source depth ("original" image)
srcRGB:
Evision.Mat.source RGB
dstDepth:
Evision.Mat.destination depth ("rotated" image)
dstRGB:
Evision.Mat.destination RGB
Return
retval:
boolrt:
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
@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
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>
@spec odometry( Evision.OdometryType.enum(), Evision.OdometrySettings.t(), Evision.OdometryAlgoType.enum() ) :: t() | {:error, String.t()}
Odometry
Positional Arguments
- otype:
OdometryType - settings:
Evision.OdometrySettings - algtype:
OdometryAlgoType
Return
- self:
Evision.Odometry.t()
Python prototype (for reference only):
Odometry(otype, settings, algtype) -> <Odometry object>
@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
@spec prepareFrames(t(), Evision.OdometryFrame.t(), Evision.OdometryFrame.t()) :: t() | {:error, String.t()}
prepareFrames
Positional Arguments
self:
Evision.Odometry.t()srcFrame:
Evision.OdometryFrame.frame will be prepared as src frame ("original" image)
dstFrame:
Evision.OdometryFrame.frame will be prepared as dsr frame ("rotated" image)
Prepare frame for odometry calculation
Python prototype (for reference only):
prepareFrames(srcFrame, dstFrame) -> None