View Source Evision.PPFMatch3D (Evision v0.2.9)
Summary
Functions
addNoisePC
Compute the normals of an arbitrary point cloud computeNormalsPC3d uses a plane fitting approach to smoothly compute local normals. Normals are obtained through the eigenvector of the covariance matrix, corresponding to the smallest eigen value. If PCNormals is provided to be an Nx6 matrix, then no new allocation is made, instead the existing memory is overwritten.
Compute the normals of an arbitrary point cloud computeNormalsPC3d uses a plane fitting approach to smoothly compute local normals. Normals are obtained through the eigenvector of the covariance matrix, corresponding to the smallest eigen value. If PCNormals is provided to be an Nx6 matrix, then no new allocation is made, instead the existing memory is overwritten.
getRandomPose
Load a PLY file
Load a PLY file
samplePCByQuantization
samplePCByQuantization
transformPCPose
Write a point cloud to PLY file
Used for debbuging pruposes, writes a point cloud to a PLY file with the tip of the normal vectors as visible red points
Types
@type t() :: %Evision.PPFMatch3D{ref: reference()}
Type that represents an PPFMatch3D
struct.
ref.
reference()
The underlying erlang resource variable.
Functions
@spec addNoisePC(Evision.Mat.maybe_mat_in(), number()) :: Evision.Mat.t() | {:error, String.t()}
addNoisePC
Positional Arguments
- pc:
Evision.Mat
- scale:
double
Return
retval:
Evision.Mat.t()
Adds a uniform noise in the given scale to the input point cloud
Python prototype (for reference only):
addNoisePC(pc, scale) -> retval
@spec computeNormalsPC3d( Evision.Mat.maybe_mat_in(), integer(), boolean(), {number(), number(), number()} ) :: {integer(), Evision.Mat.t()} | {:error, String.t()}
Compute the normals of an arbitrary point cloud computeNormalsPC3d uses a plane fitting approach to smoothly compute local normals. Normals are obtained through the eigenvector of the covariance matrix, corresponding to the smallest eigen value. If PCNormals is provided to be an Nx6 matrix, then no new allocation is made, instead the existing memory is overwritten.
Positional Arguments
- pC:
Evision.Mat
- numNeighbors:
integer()
- flipViewpoint:
bool
- viewpoint:
Vec3f
Return
- retval:
integer()
- pCNormals:
Evision.Mat.t()
.
@return Returns 0 on success
Python prototype (for reference only):
computeNormalsPC3d(PC, NumNeighbors, FlipViewpoint, viewpoint[, PCNormals]) -> retval, PCNormals
computeNormalsPC3d(pC, numNeighbors, flipViewpoint, viewpoint, opts)
View Source@spec computeNormalsPC3d( Evision.Mat.maybe_mat_in(), integer(), boolean(), {number(), number(), number()}, [{atom(), term()}, ...] | nil ) :: {integer(), Evision.Mat.t()} | {:error, String.t()}
Compute the normals of an arbitrary point cloud computeNormalsPC3d uses a plane fitting approach to smoothly compute local normals. Normals are obtained through the eigenvector of the covariance matrix, corresponding to the smallest eigen value. If PCNormals is provided to be an Nx6 matrix, then no new allocation is made, instead the existing memory is overwritten.
Positional Arguments
- pC:
Evision.Mat
- numNeighbors:
integer()
- flipViewpoint:
bool
- viewpoint:
Vec3f
Return
- retval:
integer()
- pCNormals:
Evision.Mat.t()
.
@return Returns 0 on success
Python prototype (for reference only):
computeNormalsPC3d(PC, NumNeighbors, FlipViewpoint, viewpoint[, PCNormals]) -> retval, PCNormals
@spec getRandomPose(Keyword.t()) :: any() | {:error, String.t()}
@spec getRandomPose(Evision.Mat.t()) :: :ok | {:error, String.t()}
getRandomPose
Positional Arguments
pose:
Evision.Mat
Generate a random 4x4 pose matrix
Python prototype (for reference only):
getRandomPose(Pose) -> None
@spec loadPLYSimple(Keyword.t()) :: any() | {:error, String.t()}
@spec loadPLYSimple(binary()) :: Evision.Mat.t() | {:error, String.t()}
Load a PLY file
Positional Arguments
- fileName:
c_string
Keyword Arguments
- withNormals:
integer()
.
Return
- retval:
Evision.Mat.t()
@return Returns the matrix on successful load
Python prototype (for reference only):
loadPLYSimple(fileName[, withNormals]) -> retval
@spec loadPLYSimple(binary(), [{:withNormals, term()}] | nil) :: Evision.Mat.t() | {:error, String.t()}
Load a PLY file
Positional Arguments
- fileName:
c_string
Keyword Arguments
- withNormals:
integer()
.
Return
- retval:
Evision.Mat.t()
@return Returns the matrix on successful load
Python prototype (for reference only):
loadPLYSimple(fileName[, withNormals]) -> retval
samplePCByQuantization(pc, xrange, yrange, zrange, sample_step_relative)
View Source@spec samplePCByQuantization( Evision.Mat.maybe_mat_in(), {number(), number()}, {number(), number()}, {number(), number()}, number() ) :: Evision.Mat.t() | {:error, String.t()}
samplePCByQuantization
Positional Arguments
- pc:
Evision.Mat
- xrange:
Vec2f
- yrange:
Vec2f
- zrange:
Vec2f
- sample_step_relative:
float
Keyword Arguments
- weightByCenter:
integer()
.
Return
retval:
Evision.Mat.t()
Sample a point cloud using uniform steps
@return Sampled point cloud
Python prototype (for reference only):
samplePCByQuantization(pc, xrange, yrange, zrange, sample_step_relative[, weightByCenter]) -> retval
samplePCByQuantization(pc, xrange, yrange, zrange, sample_step_relative, opts)
View Source@spec samplePCByQuantization( Evision.Mat.maybe_mat_in(), {number(), number()}, {number(), number()}, {number(), number()}, number(), [{:weightByCenter, term()}] | nil ) :: Evision.Mat.t() | {:error, String.t()}
samplePCByQuantization
Positional Arguments
- pc:
Evision.Mat
- xrange:
Vec2f
- yrange:
Vec2f
- zrange:
Vec2f
- sample_step_relative:
float
Keyword Arguments
- weightByCenter:
integer()
.
Return
retval:
Evision.Mat.t()
Sample a point cloud using uniform steps
@return Sampled point cloud
Python prototype (for reference only):
samplePCByQuantization(pc, xrange, yrange, zrange, sample_step_relative[, weightByCenter]) -> retval
@spec transformPCPose(Evision.Mat.maybe_mat_in(), Evision.Mat.t()) :: Evision.Mat.t() | {:error, String.t()}
transformPCPose
Positional Arguments
- pc:
Evision.Mat
- pose:
Evision.Mat
Return
retval:
Evision.Mat.t()
Transforms the point cloud with a given a homogeneous 4x4 pose matrix (in double precision)
@return Transformed point cloud
Python prototype (for reference only):
transformPCPose(pc, Pose) -> retval
@spec writePLY(Evision.Mat.maybe_mat_in(), binary()) :: :ok | {:error, String.t()}
Write a point cloud to PLY file
Positional Arguments
- pC:
Evision.Mat
- fileName:
c_string
Python prototype (for reference only):
writePLY(PC, fileName) -> None
@spec writePLYVisibleNormals(Evision.Mat.maybe_mat_in(), binary()) :: :ok | {:error, String.t()}
Used for debbuging pruposes, writes a point cloud to a PLY file with the tip of the normal vectors as visible red points
Positional Arguments
- pC:
Evision.Mat
- fileName:
c_string
Python prototype (for reference only):
writePLYVisibleNormals(PC, fileName) -> None