View Source Evision.DynaFu.DynaFu (Evision v0.2.9)
Summary
Functions
create
Gets points and normals of current 3d mesh
Gets points and normals of current 3d mesh
Calculates normals for given points
Calculates normals for given points
Gets points of current 3d mesh
Gets points of current 3d mesh
Renders a volume into an image
Renders a volume into an image
Resets the algorithm
Process next depth frame
Types
@type t() :: %Evision.DynaFu.DynaFu{ref: reference()}
Type that represents an DynaFu.DynaFu
struct.
ref.
reference()
The underlying erlang resource variable.
Functions
@spec create(Keyword.t()) :: any() | {:error, String.t()}
@spec create(Evision.KinFu.Params.t()) :: t() | {:error, String.t()}
create
Positional Arguments
- params:
kinfu::Params
Return
- retval:
DynaFu
Python prototype (for reference only):
create(_params) -> retval
@spec getCloud(Keyword.t()) :: any() | {:error, String.t()}
@spec getCloud(Evision.DynaFu.t()) :: {Evision.Mat.t(), Evision.Mat.t()} | {:error, String.t()}
Gets points and normals of current 3d mesh
Positional Arguments
- self:
Evision.DynaFu.DynaFu.t()
Return
points:
Evision.Mat.t()
.vector of points which are 4-float vectors
normals:
Evision.Mat.t()
.vector of normals which are 4-float vectors
The order of normals corresponds to order of points. The order of points is undefined.
Python prototype (for reference only):
getCloud([, points[, normals]]) -> points, normals
@spec getCloud(Evision.DynaFu.t(), [{atom(), term()}, ...] | nil) :: {Evision.Mat.t(), Evision.Mat.t()} | {:error, String.t()}
Gets points and normals of current 3d mesh
Positional Arguments
- self:
Evision.DynaFu.DynaFu.t()
Return
points:
Evision.Mat.t()
.vector of points which are 4-float vectors
normals:
Evision.Mat.t()
.vector of normals which are 4-float vectors
The order of normals corresponds to order of points. The order of points is undefined.
Python prototype (for reference only):
getCloud([, points[, normals]]) -> points, normals
@spec getNormals(Evision.DynaFu.t(), Evision.Mat.maybe_mat_in()) :: Evision.Mat.t() | {:error, String.t()}
Calculates normals for given points
Positional Arguments
self:
Evision.DynaFu.DynaFu.t()
points:
Evision.Mat
.input vector of points which are 4-float vectors
Return
normals:
Evision.Mat.t()
.output vector of corresponding normals which are 4-float vectors
Python prototype (for reference only):
getNormals(points[, normals]) -> normals
@spec getNormals( Evision.DynaFu.t(), Evision.Mat.maybe_mat_in(), [{atom(), term()}, ...] | nil ) :: Evision.Mat.t() | {:error, String.t()}
Calculates normals for given points
Positional Arguments
self:
Evision.DynaFu.DynaFu.t()
points:
Evision.Mat
.input vector of points which are 4-float vectors
Return
normals:
Evision.Mat.t()
.output vector of corresponding normals which are 4-float vectors
Python prototype (for reference only):
getNormals(points[, normals]) -> normals
@spec getPoints(Keyword.t()) :: any() | {:error, String.t()}
@spec getPoints(Evision.DynaFu.t()) :: Evision.Mat.t() | {:error, String.t()}
Gets points of current 3d mesh
Positional Arguments
- self:
Evision.DynaFu.DynaFu.t()
Return
points:
Evision.Mat.t()
.vector of points which are 4-float vectors
The order of points is undefined.
Python prototype (for reference only):
getPoints([, points]) -> points
@spec getPoints(Evision.DynaFu.t(), [{atom(), term()}, ...] | nil) :: Evision.Mat.t() | {:error, String.t()}
Gets points of current 3d mesh
Positional Arguments
- self:
Evision.DynaFu.DynaFu.t()
Return
points:
Evision.Mat.t()
.vector of points which are 4-float vectors
The order of points is undefined.
Python prototype (for reference only):
getPoints([, points]) -> points
@spec render(Keyword.t()) :: any() | {:error, String.t()}
@spec render(Evision.DynaFu.t()) :: Evision.Mat.t() | {:error, String.t()}
Renders a volume into an image
Positional Arguments
- self:
Evision.DynaFu.DynaFu.t()
Keyword Arguments
cameraPose:
Evision.Mat
.pose of camera to render from. If empty then render from current pose which is a last frame camera pose.
Return
image:
Evision.Mat.t()
.resulting image
Renders a 0-surface of TSDF using Phong shading into a CV_8UC4 Mat. Light pose is fixed in DynaFu params.
Python prototype (for reference only):
render([, image[, cameraPose]]) -> image
@spec render(Evision.DynaFu.t(), [{:cameraPose, term()}] | nil) :: Evision.Mat.t() | {:error, String.t()}
Renders a volume into an image
Positional Arguments
- self:
Evision.DynaFu.DynaFu.t()
Keyword Arguments
cameraPose:
Evision.Mat
.pose of camera to render from. If empty then render from current pose which is a last frame camera pose.
Return
image:
Evision.Mat.t()
.resulting image
Renders a 0-surface of TSDF using Phong shading into a CV_8UC4 Mat. Light pose is fixed in DynaFu params.
Python prototype (for reference only):
render([, image[, cameraPose]]) -> image
@spec reset(Keyword.t()) :: any() | {:error, String.t()}
@spec reset(Evision.DynaFu.t()) :: Evision.DynaFu.t() | {:error, String.t()}
Resets the algorithm
Positional Arguments
- self:
Evision.DynaFu.DynaFu.t()
Clears current model and resets a pose.
Python prototype (for reference only):
reset() -> None
@spec update(Evision.DynaFu.t(), Evision.Mat.maybe_mat_in()) :: boolean() | {:error, String.t()}
Process next depth frame
Positional Arguments
self:
Evision.DynaFu.DynaFu.t()
depth:
Evision.Mat
.one-channel image which size and depth scale is described in algorithm's parameters
Return
- retval:
bool
Integrates depth into voxel space with respect to its ICP-calculated pose. Input image is converted to CV_32F internally if has another type. @return true if succeeded to align new frame with current scene, false if opposite
Python prototype (for reference only):
update(depth) -> retval