-1

I am working on point cloud registration using open3d. I have two partially overlap point clouds say source cloud and target cloud. I have already registered them in one common coordinate system. Now, I want to remove the overlapping points to get uniform single point cloud.

All help will be appreciated. Thank you very much in advance.

  • Welcome to Stack Overflow. Please take the [tour] to learn how Stack Overflow works and read [ask] on how to improve the quality of your question. Then [edit] your question to include the full source code you have as a [mcve], which can be tested by others. – Progman Feb 10 '21 at 19:04

3 Answers3

1

@Rubens , Thank you for your reply. I already tried voxel based down sampling but in this case it will not work since it will remove data points from non overlapping part also. I found a way to overcome this problem but it takes much time. First I found the minimum distance between every points of a point cloud and its neighbor point. Once I know the minimum distance then I merge two point clouds. The next step is to again find the nearest neighbor distance for merged point cloud if it is lower than the minimum distance which I found in the first place, then I will remove that point and I will store rest of the points in the final point cloud. This method works properly but it takes computationally high time,

0

Just voxealize the 2 clouds again with "voxel_down_sample.your_point_cloud". You probably did that before the registration, especially if you are working with big clouds. If not, then you can use any of the samples methods, like "uniform_down_sample.your_point_cloud"

0

You could run registration_icp with your maximum distance as the max_correspondence_distance. Then from the returned o3d.pipelines.registration.RegistrationResult, you will have a correspondence_set of points in one mesh that are within that distance of points in the other mesh. At that point you can delete all the points in either column, or randomly delete either one or the other for each correspondence.

Alberto MQ
  • 373
  • 2
  • 16