isl-org / Open3D

Open3D: A Modern Library for 3D Data Processing
http://www.open3d.org
Other
11.45k stars 2.31k forks source link

Equivavlent of RegistrationColoredICP in non-legacy open3d::t::pipelines::registration namespace #6232

Open davids91 opened 1 year ago

davids91 commented 1 year ago

Checklist

My Question

In the docs, and most of the tutorials refer the namespace open3d::pipelines::* (without ::t); Which would be fine to use, but I can not do it, because color data from the intel realsense camera isn't recognized by it.

Instead the non-legacy interface seems to work, and it does so with a better interface.

My problem is I can not find the equivalent of this function(RegistrationColoredICP): http://www.open3d.org/docs/release/cpp_api/namespaceopen3d_1_1pipelines_1_1registration.html#aebefb3a27b84b0d20384f685cba6284f

Instead I found the following class which seems to calculate the same thing(TransformationEstimationForColoredICP): http://www.open3d.org/html/cpp_api/classopen3d_1_1pipelines_1_1registration_1_1_transformation_estimation_for_colored_i_c_p.html

Which requires a corresponmdence set const CorrespondenceSet &. I think know what it is supposed to be, it's just have no idea how to calculate it. I think it is supposed to map overlapping pixels to one another. Is there a function calculating this, or better yet another function which implements the same algo as RegistrationColoredICP and TransformationEstimationForColoredICP ?

I have tried the following, but the shape of it is invalid:

      open3d::core::Tensor result_transformation =
          pointcloud_register.ComputeTransformation(
              current_pointcloud, *last_pointcloud, open3d::core::Tensor());
theNded commented 1 year ago

The API is now absorbed in a unified ICP interface: https://github.com/isl-org/Open3D/blob/master/cpp/open3d/t/pipelines/registration/Registration.h#L130 You can assign TransformationEstimation with TransformationEstimationForColoredICP: https://github.com/isl-org/Open3D/blob/master/cpp/open3d/t/pipelines/registration/TransformationEstimation.h#L201

Note all of the above functions are in the t namespace.