ICP Registration Question about "Max Correspondence Distance"
- Dominant language
- C++
- Stars
- 14k
- Forks
- 2.6k
- Avg merge
- 5d 18h
- Merged PRs (30d)
- 6
Description
Hi everyone. I want to use open3D in c++ but it is not easy to me.
In ICP, this files can be in CloudCompare, SA(spatialAnalyzer) with 4mm rms.
but in open3d PointToPoint ICP => 0 rms
**Please tell me how to decide max correspondence distance value.**
` geometry::PointCloud source;
geometry::PointCloud target;
io::ReadPointCloudFromPCD("D:\\target.pcd", target, io::ReadPointCloudOption());
io::ReadPointCloudFromPCD("D:\\source.pcd", source, io::ReadPointCloudOption());
Eigen::Matrix4d mat = Eigen::Matrix4d::Identity();
for (auto vx : {1000,500,100,50,30,20,10})
{
auto result =
open3d::pipelines::registration::RegistrationICP(source, target, vx, mat,
open3d::pipelines::registration::TransformationEstimationPointToPoint(),
open3d::pipelines::registration::ICPConvergenceCriteria());
mat = result.transformation_;
source = source.Transform(mat);
cout << "ICP Matrix : \n" << result.transformation_ << endl;
cout << "fit : " << result.fitness_ << endl;
cout << "rms : " << result.inlier_rmse_ << endl;
}
source.PaintUniformColor({ 1,0,0 });
io::WritePointCloudToPCD("D:\\result.pcd", source, true);
`
cloud compare icp result

SA icp result

data set : source, target
[source.zip](https://github.com/isl-org/Open3D/files/9503786/source.zip)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.