OpenCV  3.1.0
Open Source Computer Vision
Classes | Typedefs | Functions
cv::ppf_match_3d Namespace Reference

Classes

class  ICP
 This class implements a very efficient and robust variant of the iterative closest point (ICP) algorithm. The task is to register a 3D model (or point cloud) against a set of noisy target data. The variants are put together by myself after certain tests. The task is to be able to match partial, noisy point clouds in cluttered scenes, quickly. You will find that my emphasis is on the performance, while retaining the accuracy. This implementation is based on Tolga Birdal's MATLAB implementation in here: http://www.mathworks.com/matlabcentral/fileexchange/47152-icp-registration-using-efficient-variants-and-multi-resolution-scheme The main contributions come from: More...
 
class  Pose3D
 Class, allowing the storage of a pose. The data structure stores both the quaternions and the matrix forms. It supports IO functionality together with various helper methods to work with poses. More...
 
class  PoseCluster3D
 When multiple poses (see Pose3D) are grouped together (contribute to the same transformation) pose clusters occur. This class is a general container for such groups of poses. It is possible to store, load and perform IO on these poses. More...
 
class  PPF3DDetector
 Class, allowing the load and matching 3D models. Typical Use: More...
 

Typedefs

typedef unsigned int KeyType
 
typedef Ptr< Pose3DPose3DPtr
 
typedef Ptr< PoseCluster3DPoseCluster3DPtr
 

Functions

Mat addNoisePC (Mat pc, double scale)
 
void computeBboxStd (Mat pc, float xRange[2], float yRange[2], float zRange[2])
 
int computeNormalsPC3d (const Mat &PC, Mat &PCNormals, const int NumNeighbors, const bool FlipViewpoint, const double viewpoint[3])
 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. More...
 
void destroyFlann (void *flannIndex)
 
void getRandomPose (double Pose[16])
 
hashtable_inthashtable_int_clone (hashtable_int *hashtbl)
 
hashtable_inthashtableCreate (size_t size, size_t(*hashfunc)(unsigned int))
 
void hashtableDestroy (hashtable_int *hashtbl)
 
void * hashtableGet (hashtable_int *hashtbl, KeyType key)
 
hashnode_ihashtableGetBucketHashed (hashtable_int *hashtbl, KeyType key)
 
int hashtableInsert (hashtable_int *hashtbl, KeyType key, void *data)
 
int hashtableInsertHashed (hashtable_int *hashtbl, KeyType key, void *data)
 
void hashtablePrint (hashtable_int *hashtbl)
 
hashtable_inthashtableRead (FILE *f)
 
int hashtableRemove (hashtable_int *hashtbl, KeyType key)
 
int hashtableResize (hashtable_int *hashtbl, size_t size)
 
int hashtableWrite (const hashtable_int *hashtbl, const size_t dataSize, FILE *f)
 
void * indexPCFlann (Mat pc)
 
Mat loadPLYSimple (const char *fileName, int withNormals)
 Load a PLY file. More...
 
static unsigned int next_power_of_two (unsigned int value)
 Round up to the next highest power of 2. More...
 
Mat normalize_pc (Mat pc, float scale)
 
Mat normalizePCCoeff (Mat pc, float scale, float *Cx, float *Cy, float *Cz, float *MinVal, float *MaxVal)
 
void queryPCFlann (void *flannIndex, Mat &pc, Mat &indices, Mat &distances)
 
void queryPCFlann (void *flannIndex, Mat &pc, Mat &indices, Mat &distances, const int numNeighbors)
 
Mat samplePCByQuantization (Mat pc, float xrange[2], float yrange[2], float zrange[2], float sample_step_relative, int weightByCenter=0)
 
Mat samplePCUniform (Mat PC, int sampleStep)
 
Mat samplePCUniformInd (Mat PC, int sampleStep, std::vector< int > &indices)
 
Mat transformPCPose (Mat pc, double Pose[16])
 
Mat transPCCoeff (Mat pc, float scale, float Cx, float Cy, float Cz, float MinVal, float MaxVal)
 
void writePLY (Mat PC, const char *fileName)
 Write a point cloud to PLY file. More...
 
void writePLYVisibleNormals (Mat PC, const char *fileName)
 Used for debbuging pruposes, writes a point cloud to a PLY file with the tip of the normal vectors as visible red points. More...