open3d.t.pipelines.slac.control_grid#
- class open3d.t.pipelines.slac.control_grid#
ControlGrid is a spatially hashed voxel grid used for non-rigid point cloud registration and TSDF integration. Each grid stores a map from the initial grid location to the deformed location. You can imagine a control grid as a jelly that is warped upon perturbation with its overall shape preserved. Reference: https://github.com/qianyizh/ElasticReconstruction/blob/master/FragmentOptimizer/OptApp.cpp http://vladlen.info/papers/elastic-fragments.pdf.
- __init__(*args, **kwargs)#
Overloaded function.
__init__(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, arg0: open3d.cpu.pybind.t.pipelines.slac.control_grid) -> None
Copy constructor
__init__(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) -> None
__init__(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, grid_size: float, grid_count: int = 1000, device: open3d.cpu.pybind.core.Device = CPU:0) -> None
__init__(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, grid_size: float, keys: open3d.cpu.pybind.core.Tensor, values: open3d.cpu.pybind.core.Tensor, device: open3d.cpu.pybind.core.Device = CPU:0) -> None
- compactify(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) None #
Force rehashing, so that all entries are remapped to [0, size) and form a contiguous index map.
- deform(*args, **kwargs)#
Overloaded function.
deform(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, pointcloud: open3d.cpu.pybind.t.geometry.PointCloud) -> open3d.cpu.pybind.t.geometry.PointCloud
Non-rigidly deform a point cloud using the control grid.
deform(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, depth: open3d.cpu.pybind.t.geometry.Image, intrinsics: open3d.cpu.pybind.core.Tensor, extrinsics: open3d.cpu.pybind.core.Tensor, depth_scale: float, depth_max: float) -> open3d.cpu.pybind.t.geometry.Image
Non-rigidly deform a depth image by - unprojecting the depth image to a point cloud - deform the point cloud; - project the deformed point cloud back to the image.
deform(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, rgbd: open3d.cpu.pybind.t.geometry.RGBDImage, intrinsics: open3d.cpu.pybind.core.Tensor, extrinsics: open3d.cpu.pybind.core.Tensor, depth_scale: float, depth_max: float) -> open3d.cpu.pybind.t.geometry.RGBDImage
Non-rigidly deform a RGBD image by - unprojecting the RGBD image to a point cloud - deform the point cloud; - project the deformed point cloud back to the image.
- get_anchor_idx(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) int #
- get_curr_positions(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) open3d.cpu.pybind.core.Tensor #
Get control grid shifted positions from tensor values (optimized in-place)
- get_device(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) open3d.cpu.pybind.core.Device #
- get_hashmap(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) open3d.cpu.pybind.core.HashMap #
Get the control grid hashmap.
- get_init_positions(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) open3d.cpu.pybind.core.Tensor #
Get control grid original positions directly from tensor keys.
- get_neighbor_grid_map(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) tuple[open3d.cpu.pybind.core.Tensor, open3d.cpu.pybind.core.Tensor, open3d.cpu.pybind.core.Tensor] #
- Get the neighbor indices per grid to construct the regularizer. Returns a 6-way neighbor grid map for all the active entries of shape (N, ).
buf_indices Active indices in the buffer of shape (N, )
buf_indices_nb Neighbor indices (including non-allocated entries) for the active entries of shape (N, 6).
masks_nb Corresponding neighbor masks of shape (N, 6).
- parameterize(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, pointcloud: open3d.cpu.pybind.t.geometry.PointCloud) open3d.cpu.pybind.t.geometry.PointCloud #
Parameterize an input point cloud by embedding each point in the grid with 8 corners via indexing and interpolation. Returns: A PointCloud with parameterization attributes: - neighbors: Index of 8 neighbor control grid points of shape (8, ) in Int64. - ratios: Interpolation ratios of 8 neighbor control grid points of shape (8, ) in Float32.
- size(self: open3d.cpu.pybind.t.pipelines.slac.control_grid) int #
- touch(self: open3d.cpu.pybind.t.pipelines.slac.control_grid, pointcloud: open3d.cpu.pybind.t.geometry.PointCloud) None #
Allocate control grids in the shared camera space.