Class PpfMatch3dInvoke
- Namespace
- Emgu.CV.PpfMatch3d
- Assembly
- Emgu.CV.dll
Entry points to the Open CV Surface Matching module
public static class PpfMatch3dInvoke
- Inheritance
-
PpfMatch3dInvoke
- Inherited Members
Methods
ComputeNormalsPC3d(Mat, Mat, int, bool, float[])
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.
public static int ComputeNormalsPC3d(Mat pc, Mat pcNormals, int numNeighbors, bool flipViewpoint, float[] viewpoint)
Parameters
pc
MatInput point cloud (CV_32F family). Point clouds with 3 or 6 elements per row are expected. In the case where the normals are provided, they are also rotated to be compatible with the entire transformation
pcNormals
MatOutput point cloud
numNeighbors
intNumber of neighbors to take into account in a local region
flipViewpoint
boolShould normals be flipped to a viewing direction?
viewpoint
float[]viewpoint
Returns
- int
Returns 0 on success
LoadPLYSimple(string, int, IOutputArray)
Load a PLY file.
public static void LoadPLYSimple(string fileName, int withNormals, IOutputArray result)
Parameters
fileName
stringThe PLY model to read
withNormals
intWheather the input PLY contains normal information, and whether it should be loaded or not
result
IOutputArrayThe data loaded from the ply model
SamplePCByQuantization(Mat, float[], float[], float[], float, int, IOutputArray)
Sample a point cloud using uniform steps
public static void SamplePCByQuantization(Mat pc, float[] xRange, float[] yRange, float[] zRange, float sampleStepRelative, int weightByCenter, IOutputArray result)
Parameters
pc
MatInput point cloud (CV_32F family). Point clouds with 3 or 6 elements per row are expected. In the case where the normals are provided, they are also rotated to be compatible with the entire transformation
xRange
float[]X components (min and max) of the bounding box of the model
yRange
float[]Y components (min and max) of the bounding box of the model
zRange
float[]Z components (min and max) of the bounding box of the model
sampleStepRelative
floatThe point cloud is sampled such that all points have a certain minimum distance. This minimum distance is determined relatively using the parameter sampleStepRelative.
weightByCenter
intThe contribution of the quantized data points can be weighted by the distance to the origin. This parameter enables/disables the use of weighting.
result
IOutputArraySampled point cloud
TransformPCPose(Mat, Mat, IOutputArray)
Transforms the point cloud with a given a homogeneous 4x4 pose matrix (in double precision)
public static void TransformPCPose(Mat pc, Mat pose, IOutputArray result)
Parameters
pc
MatInput point cloud (CV_32F family). Point clouds with 3 or 6 elements per row are expected. In the case where the normals are provided, they are also rotated to be compatible with the entire transformation
pose
Mat4x4 pose matrix, but linearized in row-major form.
result
IOutputArrayTransformed point cloud