You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* @brief Fast Global Registration based on Feature Matching using (Fast) Point Feature Histograms (FPFH) on the source and target point clouds
41
43
*
42
44
* Very simply, point features are values computed on a point cloud (for example the normal of a point, the curvature, etc.).
43
-
* point features historigrams generalize this concept by computing point features in a local neighborhood of a point, stored as higher-dimentional historigrams.
45
+
* point features historigrams generalize this concept by computing point features in a local neighborhood of a point, and are stored as higher-dimentional historigrams. Those historigrams are then used to compute a transformation between the source and target point clouds.
44
46
*
45
47
* @note The FPFH hyperspace is dependent on the quality of the surface normal estimations at each point (if pc noisy, historigram different).
46
48
*
@@ -52,12 +54,14 @@ class GlobalRegistration
52
54
* @param maxCorrespondenceDistance the maximum distance between correspondences. A higher value will result in more correspondences, but potentially include wrong ones.
53
55
* @param iterationNumber the number of iterations to run the RanSaC registration algorithm. A higher value will take more time to compute but increases the chances of finding a good transformation. As parameter of the FastGlobalRegistrationOption options
54
56
* @param maxTupleCount the maximum number of tuples to consider in the FPFH hyperspace. A higher value will result in heavier computation but potentially more precise. As parameter of the FastGlobalRegistrationOption options
57
+
* @return diffCheck::transformation::DFTransformation The result of the registration, containing the transformation matrix and the fitness score.
55
58
*
59
+
* @see https://www.open3d.org/docs/latest/cpp_api/classopen3d_1_1pipelines_1_1registration_1_1_registration_result.html#a6722256f1f3ddccb2c4ec8d724693974 for more information on the RegistrationResult object
56
60
* @see https://link.springer.com/content/pdf/10.1007/978-3-319-46475-6_47.pdf for the original article on Fast Global Registration
57
61
* @see https://pcl.readthedocs.io/projects/tutorials/en/latest/pfh_estimation.html#pfh-estimation for more information on PFH (from PCL, not Open3D)
58
62
* @see https://mediatum.ub.tum.de/doc/800632/941254.pdf for in-depth documentation on the theory
* @param maxNeighborKDTreeSearch the maximum number of neighbors to search for in the KDTree. It is used for the calculation of FPFHFeatures
111
116
* @param maxCorrespondenceDistance the maximum distance between correspondences in the FPFH space. A higher value will result in more correspondences, but potentially include wrong ones.
112
117
* @param correspondenceSetSize the number of correspondences to consider in the Ransac algorithm
118
+
* @return diffCheck::transformation::DFTransformation The result of the registration, containing the transformation matrix and the fitness score.
* @param transformationEstimation the transformation estimation method to use. By default, it uses a point to point transformation estimation.
137
143
* @param ransacN the number of points to sample in the source point cloud. A higher value can result in a more precise transformation, but will take more time to compute.
138
144
* @param correspondenceCheckersDistance the maximum distance between correspondances in the FPFH space before testing a RanSaC model.
145
+
* @return diffCheck::transformation::DFTransformation The result of the registration, containing the transformation matrix and the fitness score.
139
146
*
140
147
* @see https://www.open3d.org/docs/release/tutorial/pipelines/global_registration.html#RANSAC (from PCL, not Open3D)
auto result_1 = diffCheck::registration::GlobalRegistration::O3DFastGlobalRegistrationBasedOnCorrespondence(dfPointCloudPtrAfterTrans, dfPointCloudPtrGroundTruth);
auto result_2 = diffCheck::registration::GlobalRegistration::O3DFastGlobalRegistrationBasedOnCorrespondence(dfPointCloudPtrAfterTrans, dfPointCloudPtrGroundTruth);
0 commit comments