Data structure used to store the results of the MLS fitting. More...
#include <pcl/surface/mls.h>
Classes | |
struct | MLSProjectionResults |
Data structure used to store the MLS projection results. More... |
|
struct | PolynomialPartialDerivative |
Data structure used to store the MLS polynomial partial derivatives. More... |
|
Public Types | |
enum | ProjectionMethod { NONE, SIMPLE, ORTHOGONAL } |
Public Member Functions | |
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... |
|
Public Attributes | |
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... |
|
| inline |
Eigen::Vector2f pcl::MLSResult::calculatePrincipalCurvatures | ( | const double | u, |
const double | v | ||
) | const |
Calculate the principal curvatures using the polynomial surface.
[in] | u | The u-coordinate of the point in local MLS frame. |
[in] | v | The v-coordinate of the point in local MLS frame. |
Referenced by calculatePrincipleCurvatures().
| inline |
Calculate the principal curvatures using the polynomial surface.
[in] | u | The u-coordinate of the point in local MLS frame. |
[in] | v | The v-coordinate of the point in local MLS frame. |
Definition at line 155 of file mls.h.
References calculatePrincipalCurvatures().
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 = {} | ||
) |
Smooth a given point and its neighborhood using Moving Least Squares.
[in] | cloud | the input cloud, used together with index and nn_indices |
[in] | index | the index of the query point in the input cloud |
[in] | nn_indices | the set of nearest neighbors indices for pt |
[in] | search_radius | the search radius used to find nearest neighbors for pt |
[in] | polynomial_order | the order of the polynomial to fit to the nearest neighbors |
[in] | weight_func | defines the weight function for the polynomial fit |
Definition at line 690 of file mls.hpp.
References pcl::compute3DCentroid(), pcl::computeCovarianceMatrix(), pcl::geometry::distance(), and pcl::eigen33().
Referenced by pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().
| inline |
| inline |
Given a point calculate its 3D location in the MLS frame.
[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. |
| inline |
Calculate the polynomial's first and second partial derivatives.
[in] | u | The u-coordinate of the point in local MLS frame. |
[in] | v | The v-coordinate of the point in local MLS frame. |
| inline |
| inline |
Project a point using the specified method.
[in] | pt | The point to be project. |
[in] | method | The projection method to be used. |
[in] | required_neighbors | The minimum number of neighbors required. |
| inline |
Project a point orthogonal to the polynomial surface.
[in] | u | The u-coordinate of the point in local MLS frame. |
[in] | v | The v-coordinate of the point in local MLS frame. |
[in] | w | The w-coordinate of the point in local MLS frame. |
Definition at line 537 of file mls.hpp.
References pcl::MLSResult::MLSProjectionResults::normal, pcl::MLSResult::MLSProjectionResults::point, pcl::MLSResult::MLSProjectionResults::u, pcl::MLSResult::MLSProjectionResults::v, pcl::MLSResult::PolynomialPartialDerivative::z, pcl::MLSResult::PolynomialPartialDerivative::z_u, pcl::MLSResult::PolynomialPartialDerivative::z_uu, pcl::MLSResult::PolynomialPartialDerivative::z_uv, pcl::MLSResult::PolynomialPartialDerivative::z_v, and pcl::MLSResult::PolynomialPartialDerivative::z_vv.
| inline |
Project a point along the MLS plane normal to the polynomial surface.
[in] | u | The u-coordinate of the point in local MLS frame. |
[in] | v | The v-coordinate of the point in local MLS frame. |
Definition at line 614 of file mls.hpp.
References pcl::MLSResult::MLSProjectionResults::normal, pcl::MLSResult::MLSProjectionResults::point, pcl::MLSResult::MLSProjectionResults::u, pcl::MLSResult::MLSProjectionResults::v, pcl::MLSResult::PolynomialPartialDerivative::z, pcl::MLSResult::PolynomialPartialDerivative::z_u, and pcl::MLSResult::PolynomialPartialDerivative::z_v.
Referenced by pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().
| inline |
Project a point onto the MLS plane.
[in] | u | The u-coordinate of the point in local MLS frame. |
[in] | v | The v-coordinate of the point in local MLS frame. |
Definition at line 602 of file mls.hpp.
References pcl::MLSResult::MLSProjectionResults::normal, pcl::MLSResult::MLSProjectionResults::point, pcl::MLSResult::MLSProjectionResults::u, and pcl::MLSResult::MLSProjectionResults::v.
Referenced by pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().
| inline |
Project the query point used to generate the mls surface about using the specified method.
[in] | method | The projection method to be used. |
[in] | required_neighbors | The minimum number of neighbors required. |
Definition at line 659 of file mls.hpp.
References pcl::MLSResult::MLSProjectionResults::normal, and pcl::MLSResult::MLSProjectionResults::point.
Referenced by pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().
Eigen::VectorXd pcl::MLSResult::c_vec |
float pcl::MLSResult::curvature |
The curvature at the query point.
Definition at line 232 of file mls.h.
Referenced by pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().
Eigen::Vector3d pcl::MLSResult::mean |
int pcl::MLSResult::num_neighbors |
The number of neighbors used to create the mls surface.
Definition at line 231 of file mls.h.
Referenced by pcl::MovingLeastSquares< PointInT, PointOutT >::computeMLSPointNormal().
int pcl::MLSResult::order |
Eigen::Vector3d pcl::MLSResult::plane_normal |
Eigen::Vector3d pcl::MLSResult::query_point |
Eigen::Vector3d pcl::MLSResult::u_axis |
Eigen::Vector3d pcl::MLSResult::v_axis |
bool pcl::MLSResult::valid |
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/structpcl_1_1_m_l_s_result.html