Data structure used to store the results of the MLS fitting. More...
#include <pcl/surface/mls.h>
|
|
MLSResult () |
|
MLSResult (const Eigen::Vector3d &a_query_point, const Eigen::Vector3d &a_mean, const Eigen::Vector3d &a_plane_normal, const Eigen::Vector3d &a_u, const Eigen::Vector3d &a_v, const Eigen::VectorXd &a_c_vec, const int a_num_neighbors, const float a_curvature, const int a_order) |
void |
getMLSCoordinates (const Eigen::Vector3d &pt, double &u, double &v, double &w) const |
|
Given a point calculate its 3D location in the MLS frame. More...
|
void |
getMLSCoordinates (const Eigen::Vector3d &pt, double &u, double &v) const |
|
Given a point calculate its 2D location in the MLS frame. More...
|
double |
getPolynomialValue (const double u, const double v) const |
|
Calculate the polynomial. More...
|
PolynomialPartialDerivative |
getPolynomialPartialDerivative (const double u, const double v) const |
|
Calculate the polynomial's first and second partial derivatives. More...
|
Eigen::Vector2f |
calculatePrincipalCurvatures (const double u, const double v) const |
|
Calculate the principal curvatures using the polynomial surface. More...
|
Eigen::Vector2f |
calculatePrincipleCurvatures (const double u, const double v) const |
|
Calculate the principal curvatures using the polynomial surface. More...
|
MLSProjectionResults |
projectPointOrthogonalToPolynomialSurface (const double u, const double v, const double w) const |
|
Project a point orthogonal to the polynomial surface. More...
|
MLSProjectionResults |
projectPointToMLSPlane (const double u, const double v) const |
|
Project a point onto the MLS plane. More...
|
MLSProjectionResults |
projectPointSimpleToPolynomialSurface (const double u, const double v) const |
|
Project a point along the MLS plane normal to the polynomial surface. More...
|
MLSProjectionResults |
projectPoint (const Eigen::Vector3d &pt, ProjectionMethod method, int required_neighbors=0) const |
|
Project a point using the specified method. More...
|
MLSProjectionResults |
projectQueryPoint (ProjectionMethod method, int required_neighbors=0) const |
|
Project the query point used to generate the mls surface about using the specified method. More...
|
template<typename PointT > |
void |
computeMLSSurface (const pcl::PointCloud< PointT > &cloud, pcl::index_t index, const pcl::Indices &nn_indices, double search_radius, int polynomial_order=2, std::function< double(const double)> weight_func={}) |
|
Smooth a given point and its neighborhood using Moving Least Squares. More...
|
|
Eigen::Vector3d |
query_point |
|
The query point about which the mls surface was generated. More...
|
Eigen::Vector3d |
mean |
|
The mean point of all the neighbors. More...
|
Eigen::Vector3d |
plane_normal |
|
The normal of the local plane of the query point. More...
|
Eigen::Vector3d |
u_axis |
|
The axis corresponding to the u-coordinates of the local plane of the query point. More...
|
Eigen::Vector3d |
v_axis |
|
The axis corresponding to the v-coordinates of the local plane of the query point. More...
|
Eigen::VectorXd |
c_vec |
|
The polynomial coefficients Example: z = c_vec[0] + c_vec[1]*v + c_vec[2]*v^2 + c_vec[3]*u + c_vec[4]*u*v + c_vec[5]*u^2. More...
|
int |
num_neighbors |
|
The number of neighbors used to create the mls surface. More...
|
float |
curvature |
|
The curvature at the query point. More...
|
int |
order |
|
The order of the polynomial. More...
|
bool |
valid |
|
If True, the mls results data is valid, otherwise False. More...
|
Data structure used to store the results of the MLS fitting.
Definition at line 59 of file mls.h.
ProjectionMethod
Enumerator |
NONE |
Project to the mls plane. |
SIMPLE |
Project along the mls plane normal to the polynomial surface. |
ORTHOGONAL |
Project to the closest point on the polynonomial surface. |
Definition at line 61 of file mls.h.
MLSResult() [1/2]
pcl::MLSResult::MLSResult |
( |
|
) |
|
|
inline |
Definition at line 92 of file mls.h.
MLSResult() [2/2]
pcl::MLSResult::MLSResult |
( |
const Eigen::Vector3d & |
a_query_point, |
|
|
const Eigen::Vector3d & |
a_mean, |
|
|
const Eigen::Vector3d & |
a_plane_normal, |
|
|
const Eigen::Vector3d & |
a_u, |
|
|
const Eigen::Vector3d & |
a_v, |
|
|
const Eigen::VectorXd & |
a_c_vec, |
|
|
const int |
a_num_neighbors, |
|
|
const float |
a_curvature, |
|
|
const int |
a_order |
|
) |
|
|
|
inline |
calculatePrincipalCurvatures()
Eigen::Vector2f pcl::MLSResult::calculatePrincipalCurvatures |
( |
const double |
u, |
|
|
const double |
v |
|
) |
|
const |
Calculate the principal curvatures using the polynomial surface.
-
Parameters
-
[in] |
u |
The u-coordinate of the point in local MLS frame. |
[in] |
v |
The v-coordinate of the point in local MLS frame. |
-
Returns
-
The principal curvature [k1, k2] at the provided uv coordinates.
-
Note
-
If an error occurs then 1e-5 is returned.
Referenced by calculatePrincipleCurvatures().
calculatePrincipleCurvatures()
Eigen::Vector2f pcl::MLSResult::calculatePrincipleCurvatures |
( |
const double |
u, |
|
|
const double |
v |
|
) |
|
const |
|
inline |
Calculate the principal curvatures using the polynomial surface.
-
Parameters
-
[in] |
u |
The u-coordinate of the point in local MLS frame. |
[in] |
v |
The v-coordinate of the point in local MLS frame. |
-
Returns
-
The principal curvature [k1, k2] at the provided uv coordinates.
-
Note
-
If an error occurs then 1e-5 is returned.
-
Deprecated:
-
Scheduled for removal in version 1 . 15 : "use calculatePrincipalCurvatures() instead"
Definition at line 155 of file mls.h.
References calculatePrincipalCurvatures().
computeMLSSurface()
template<typename PointT >
void pcl::MLSResult::computeMLSSurface |
( |
const pcl::PointCloud< PointT > & |
cloud, |
|
|
pcl::index_t |
index, |
|
|
const pcl::Indices & |
nn_indices, |
|
|
double |
search_radius, |
|
|
int |
polynomial_order = 2 , |
|
|
std::function< double(const double)> |
weight_func = {} |
|
) |
|
|
getMLSCoordinates() [1/2]
void pcl::MLSResult::getMLSCoordinates |
( |
const Eigen::Vector3d & |
pt, |
|
|
double & |
u, |
|
|
double & |
v |
|
) |
|
const |
|
inline |
Given a point calculate its 2D location in the MLS frame.
-
Parameters
-
[in] |
pt |
The point |
[out] |
u |
The u-coordinate of the point in local MLS frame. |
[out] |
v |
The v-coordinate of the point in local MLS frame. |
Definition at line 462 of file mls.hpp.
getMLSCoordinates() [2/2]
void pcl::MLSResult::getMLSCoordinates |
( |
const Eigen::Vector3d & |
pt, |
|
|
double & |
u, |
|
|
double & |
v, |
|
|
double & |
w |
|
) |
|
const |
|
inline |
Given a point calculate its 3D location in the MLS frame.
-
Parameters
-
[in] |
pt |
The point |
[out] |
u |
The u-coordinate of the point in local MLS frame. |
[out] |
v |
The v-coordinate of the point in local MLS frame. |
[out] |
w |
The w-coordinate of the point in local MLS frame. |
Definition at line 453 of file mls.hpp.
getPolynomialPartialDerivative()
Calculate the polynomial's first and second partial derivatives.
-
Parameters
-
[in] |
u |
The u-coordinate of the point in local MLS frame. |
[in] |
v |
The v-coordinate of the point in local MLS frame. |
-
Returns
-
The polynomial partial derivatives at the provided uv coordinates.
Definition at line 492 of file mls.hpp.
getPolynomialValue()
double pcl::MLSResult::getPolynomialValue |
( |
const double |
u, |
|
|
const double |
v |
|
) |
|
const |
|
inline |
Calculate the polynomial.
-
Parameters
-
[in] |
u |
The u-coordinate of the point in local MLS frame. |
[in] |
v |
The v-coordinate of the point in local MLS frame. |
-
Returns
-
The polynomial value at the provided uv coordinates.
Definition at line 470 of file mls.hpp.
projectPoint()
Project a point using the specified method.
-
Parameters
-
[in] |
pt |
The point to be project. |
[in] |
method |
The projection method to be used. |
[in] |
required_neighbors |
The minimum number of neighbors required. |
-
Note
-
If required_neighbors is 0 then any number of neighbors is allowed.
-
If required_neighbors is not satisfied it projects to the mls plane.
-
Returns
-
The MLSProjectionResults for the input data.
Definition at line 637 of file mls.hpp.
projectPointOrthogonalToPolynomialSurface()
projectPointSimpleToPolynomialSurface()
projectPointToMLSPlane()
projectQueryPoint()
c_vec
Eigen::VectorXd pcl::MLSResult::c_vec |
The polynomial coefficients Example: z = c_vec[0] + c_vec[1]*v + c_vec[2]*v^2 + c_vec[3]*u + c_vec[4]*u*v + c_vec[5]*u^2.
Definition at line 230 of file mls.h.
curvature
float pcl::MLSResult::curvature |
mean
Eigen::Vector3d pcl::MLSResult::mean |
The mean point of all the neighbors.
Definition at line 226 of file mls.h.
num_neighbors
int pcl::MLSResult::num_neighbors |
order
int pcl::MLSResult::order |
The order of the polynomial.
If order > 1 then use polynomial fit
Definition at line 233 of file mls.h.
plane_normal
Eigen::Vector3d pcl::MLSResult::plane_normal |
The normal of the local plane of the query point.
Definition at line 227 of file mls.h.
query_point
Eigen::Vector3d pcl::MLSResult::query_point |
The query point about which the mls surface was generated.
Definition at line 225 of file mls.h.
u_axis
Eigen::Vector3d pcl::MLSResult::u_axis |
The axis corresponding to the u-coordinates of the local plane of the query point.
Definition at line 228 of file mls.h.
v_axis
Eigen::Vector3d pcl::MLSResult::v_axis |
The axis corresponding to the v-coordinates of the local plane of the query point.
Definition at line 229 of file mls.h.
valid
bool pcl::MLSResult::valid |
If True, the mls results data is valid, otherwise False.
Definition at line 234 of file mls.h.
The documentation for this struct was generated from the following files: