Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
PointCloud.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// Copyright (c) 2018-2024 www.open3d.org
5// SPDX-License-Identifier: MIT
6// ----------------------------------------------------------------------------
7
8#pragma once
9
10#include <unordered_map>
11
12#include "open3d/core/Tensor.h"
13
14namespace open3d {
15namespace t {
16namespace geometry {
17namespace kernel {
18namespace pointcloud {
19
20void Unproject(const core::Tensor& depth,
21 utility::optional<std::reference_wrapper<const core::Tensor>>
22 image_colors,
23 core::Tensor& points,
24 utility::optional<std::reference_wrapper<core::Tensor>> colors,
25 const core::Tensor& intrinsics,
26 const core::Tensor& extrinsics,
27 float depth_scale,
28 float depth_max,
29 int64_t stride);
30
31void Project(
32 core::Tensor& depth,
33 utility::optional<std::reference_wrapper<core::Tensor>> image_colors,
34 const core::Tensor& points,
35 utility::optional<std::reference_wrapper<const core::Tensor>> colors,
36 const core::Tensor& intrinsics,
37 const core::Tensor& extrinsics,
38 float depth_scale,
39 float depth_max);
40
41void GetPointMaskWithinAABB(const core::Tensor& points,
42 const core::Tensor& min_bound,
43 const core::Tensor& max_bound,
44 core::Tensor& mask);
45
46void GetPointMaskWithinOBB(const core::Tensor& points,
47 const core::Tensor& center,
48 const core::Tensor& rotation,
49 const core::Tensor& extent,
50 core::Tensor& mask);
51
52void UnprojectCPU(
53 const core::Tensor& depth,
54 utility::optional<std::reference_wrapper<const core::Tensor>>
55 image_colors,
56 core::Tensor& points,
57 utility::optional<std::reference_wrapper<core::Tensor>> colors,
58 const core::Tensor& intrinsics,
59 const core::Tensor& extrinsics,
60 float depth_scale,
61 float depth_max,
62 int64_t stride);
63
64void ProjectCPU(
65 core::Tensor& depth,
66 utility::optional<std::reference_wrapper<core::Tensor>> image_colors,
67 const core::Tensor& points,
68 utility::optional<std::reference_wrapper<const core::Tensor>> colors,
69 const core::Tensor& intrinsics,
70 const core::Tensor& extrinsics,
71 float depth_scale,
72 float depth_max);
73
74void GetPointMaskWithinAABBCPU(const core::Tensor& points,
75 const core::Tensor& min_bound,
76 const core::Tensor& max_bound,
77 core::Tensor& mask);
78
79void GetPointMaskWithinOBBCPU(const core::Tensor& points,
80 const core::Tensor& center,
81 const core::Tensor& rotation,
82 const core::Tensor& extent,
83 core::Tensor& mask);
84
85void NormalizeNormalsCPU(core::Tensor& normals);
86
87void OrientNormalsToAlignWithDirectionCPU(core::Tensor& normals,
88 const core::Tensor& direction);
89
90void OrientNormalsTowardsCameraLocationCPU(const core::Tensor& points,
91 core::Tensor& normals,
92 const core::Tensor& camera);
93
94void ComputeBoundaryPointsCPU(const core::Tensor& points,
95 const core::Tensor& normals,
96 const core::Tensor& indices,
97 const core::Tensor& counts,
98 core::Tensor& mask,
99 double angle_threshold);
100
101#ifdef BUILD_CUDA_MODULE
102void UnprojectCUDA(
103 const core::Tensor& depth,
104 utility::optional<std::reference_wrapper<const core::Tensor>>
105 image_colors,
106 core::Tensor& points,
107 utility::optional<std::reference_wrapper<core::Tensor>> colors,
108 const core::Tensor& intrinsics,
109 const core::Tensor& extrinsics,
110 float depth_scale,
111 float depth_max,
112 int64_t stride);
113
114void ProjectCUDA(
115 core::Tensor& depth,
116 utility::optional<std::reference_wrapper<core::Tensor>> image_colors,
117 const core::Tensor& points,
118 utility::optional<std::reference_wrapper<const core::Tensor>> colors,
119 const core::Tensor& intrinsics,
120 const core::Tensor& extrinsics,
121 float depth_scale,
122 float depth_max);
123
124void GetPointMaskWithinAABBCUDA(const core::Tensor& points,
125 const core::Tensor& min_bound,
126 const core::Tensor& max_bound,
127 core::Tensor& mask);
128
129void GetPointMaskWithinOBBCUDA(const core::Tensor& points,
130 const core::Tensor& center,
131 const core::Tensor& rotation,
132 const core::Tensor& extent,
133 core::Tensor& mask);
134
135void NormalizeNormalsCUDA(core::Tensor& normals);
136
137void OrientNormalsToAlignWithDirectionCUDA(core::Tensor& normals,
138 const core::Tensor& direction);
139
140void OrientNormalsTowardsCameraLocationCUDA(const core::Tensor& points,
141 core::Tensor& normals,
142 const core::Tensor& camera);
143
144void ComputeBoundaryPointsCUDA(const core::Tensor& points,
145 const core::Tensor& normals,
146 const core::Tensor& indices,
147 const core::Tensor& counts,
148 core::Tensor& mask,
149 double angle_threshold);
150#endif
151
152void EstimateCovariancesUsingHybridSearchCPU(const core::Tensor& points,
153 core::Tensor& covariances,
154 const double& radius,
155 const int64_t& max_nn);
156
157void EstimateCovariancesUsingKNNSearchCPU(const core::Tensor& points,
158 core::Tensor& covariances,
159 const int64_t& max_nn);
160
161void EstimateCovariancesUsingRadiusSearchCPU(const core::Tensor& points,
162 core::Tensor& covariances,
163 const double& radius);
164
165void EstimateNormalsFromCovariancesCPU(const core::Tensor& covariances,
166 core::Tensor& normals,
167 const bool has_normals);
168
170 const core::Tensor& normals,
171 const core::Tensor& colors,
172 core::Tensor& color_gradient,
173 const double& radius,
174 const int64_t& max_nn);
175
176void EstimateColorGradientsUsingKNNSearchCPU(const core::Tensor& points,
177 const core::Tensor& normals,
178 const core::Tensor& colors,
179 core::Tensor& color_gradient,
180 const int64_t& max_nn);
181
183 const core::Tensor& normals,
184 const core::Tensor& colors,
185 core::Tensor& color_gradient,
186 const double& radius);
187
188#ifdef BUILD_CUDA_MODULE
189void EstimateCovariancesUsingHybridSearchCUDA(const core::Tensor& points,
190 core::Tensor& covariances,
191 const double& radius,
192 const int64_t& max_nn);
193
194void EstimateCovariancesUsingKNNSearchCUDA(const core::Tensor& points,
195 core::Tensor& covariances,
196 const int64_t& max_nn);
197
198void EstimateCovariancesUsingRadiusSearchCUDA(const core::Tensor& points,
199 core::Tensor& covariances,
200 const double& radius);
201
202void EstimateNormalsFromCovariancesCUDA(const core::Tensor& covariances,
203 core::Tensor& normals,
204 const bool has_normals);
205
206void EstimateColorGradientsUsingHybridSearchCUDA(const core::Tensor& points,
207 const core::Tensor& normals,
208 const core::Tensor& colors,
209 core::Tensor& color_gradient,
210 const double& radius,
211 const int64_t& max_nn);
212
213void EstimateColorGradientsUsingKNNSearchCUDA(const core::Tensor& points,
214 const core::Tensor& normals,
215 const core::Tensor& colors,
216 core::Tensor& color_gradient,
217 const int64_t& max_nn);
218
219void EstimateColorGradientsUsingRadiusSearchCUDA(const core::Tensor& points,
220 const core::Tensor& normals,
221 const core::Tensor& colors,
222 core::Tensor& color_gradient,
223 const double& radius);
224#endif
225
226} // namespace pointcloud
227} // namespace kernel
228} // namespace geometry
229} // namespace t
230} // namespace open3d
double t
Definition SurfaceReconstructionPoisson.cpp:172
size_t stride
Definition TriangleMeshBuffers.cpp:165
bool has_normals
Definition FilePCD.cpp:61
int points
Definition FilePCD.cpp:54
void EstimateCovariancesUsingHybridSearchCPU(const core::Tensor &points, core::Tensor &covariances, const double &radius, const int64_t &max_nn)
Definition PointCloudImpl.h:562
void GetPointMaskWithinAABB(const core::Tensor &points, const core::Tensor &min_bound, const core::Tensor &max_bound, core::Tensor &mask)
Definition PointCloud.cpp:100
void Project(core::Tensor &depth, utility::optional< std::reference_wrapper< core::Tensor > > image_colors, const core::Tensor &points, utility::optional< std::reference_wrapper< const core::Tensor > > colors, const core::Tensor &intrinsics, const core::Tensor &extrinsics, float depth_scale, float depth_max)
Definition PointCloud.cpp:62
void EstimateCovariancesUsingRadiusSearchCPU(const core::Tensor &points, core::Tensor &covariances, const double &radius)
Definition PointCloudImpl.h:612
void EstimateNormalsFromCovariancesCPU(const core::Tensor &covariances, core::Tensor &normals, const bool has_normals)
Definition PointCloudImpl.h:979
void OrientNormalsTowardsCameraLocationCPU(const core::Tensor &points, core::Tensor &normals, const core::Tensor &camera)
Definition PointCloudImpl.h:286
void UnprojectCPU(const core::Tensor &depth, utility::optional< std::reference_wrapper< const core::Tensor > > image_colors, core::Tensor &points, utility::optional< std::reference_wrapper< core::Tensor > > colors, const core::Tensor &intrinsics, const core::Tensor &extrinsics, float depth_scale, float depth_max, int64_t stride)
Definition PointCloudImpl.h:45
void GetPointMaskWithinAABBCPU(const core::Tensor &points, const core::Tensor &min_bound, const core::Tensor &max_bound, core::Tensor &mask)
Definition PointCloudImpl.h:143
void ComputeBoundaryPointsCPU(const core::Tensor &points, const core::Tensor &normals, const core::Tensor &indices, const core::Tensor &counts, core::Tensor &mask, double angle_threshold)
Definition PointCloudImpl.h:421
void EstimateColorGradientsUsingKNNSearchCPU(const core::Tensor &points, const core::Tensor &normals, const core::Tensor &colors, core::Tensor &color_gradient, const int64_t &max_nn)
Definition PointCloudImpl.h:1185
void NormalizeNormalsCPU(core::Tensor &normals)
Definition PointCloudImpl.h:221
void ProjectCPU(core::Tensor &depth, utility::optional< std::reference_wrapper< core::Tensor > > image_colors, const core::Tensor &points, utility::optional< std::reference_wrapper< const core::Tensor > > colors, const core::Tensor &intrinsics, const core::Tensor &extrinsics, float depth_scale, float depth_max)
Definition PointCloudCPU.cpp:18
void GetPointMaskWithinOBB(const core::Tensor &points, const core::Tensor &center, const core::Tensor &rotation, const core::Tensor &extent, core::Tensor &mask)
Definition PointCloud.cpp:125
void EstimateColorGradientsUsingRadiusSearchCPU(const core::Tensor &points, const core::Tensor &normals, const core::Tensor &colors, core::Tensor &color_gradient, const double &radius)
Definition PointCloudImpl.h:1240
void GetPointMaskWithinOBBCPU(const core::Tensor &points, const core::Tensor &center, const core::Tensor &rotation, const core::Tensor &extent, core::Tensor &mask)
Definition PointCloudImpl.h:177
void EstimateColorGradientsUsingHybridSearchCPU(const core::Tensor &points, const core::Tensor &normals, const core::Tensor &colors, core::Tensor &color_gradient, const double &radius, const int64_t &max_nn)
Definition PointCloudImpl.h:1133
void Unproject(const core::Tensor &depth, utility::optional< std::reference_wrapper< const core::Tensor > > image_colors, core::Tensor &points, utility::optional< std::reference_wrapper< core::Tensor > > colors, const core::Tensor &intrinsics, const core::Tensor &extrinsics, float depth_scale, float depth_max, int64_t stride)
Definition PointCloud.cpp:23
void OrientNormalsToAlignWithDirectionCPU(core::Tensor &normals, const core::Tensor &direction)
Definition PointCloudImpl.h:252
void EstimateCovariancesUsingKNNSearchCPU(const core::Tensor &points, core::Tensor &covariances, const int64_t &max_nn)
Definition PointCloudImpl.h:661
Definition PinholeCameraIntrinsic.cpp:16