Структура данных для хранения результатов подгонки MLS. Подробнее...
#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 |
| |
Вычисление 3D координат точки в системе координат MLS. Подробнее...
|
| void |
getMLSCoordinates (const Eigen::Vector3d &pt, double &u, double &v) const |
| |
Вычисление 2D координат точки в системе координат MLS. Подробнее...
|
| double |
getPolynomialValue (const double u, const double v) const |
| |
Вычисление значения многочлена. Подробнее...
|
|
PolynomialPartialDerivative |
getPolynomialPartialDerivative (const double u, const double v) const |
| |
Вычисление частных производных первого и второго порядка многочлена. Подробнее...
|
| Eigen::Vector2f |
calculatePrincipalCurvatures (const double u, const double v) const |
| |
Вычисление главных кривизн с использованием полиномиальной поверхности. Подробнее...
|
| Eigen::Vector2f |
calculatePrincipleCurvatures (const double u, const double v) const |
| |
Вычисление главных кривизн с использованием полиномиальной поверхности. Подробнее...
|
|
MLSProjectionResults |
projectPointOrthogonalToPolynomialSurface (const double u, const double v, const double w) const |
| |
Проекция точки ортогонально на полиномиальную поверхность. Подробнее...
|
|
MLSProjectionResults |
projectPointToMLSPlane (const double u, const double v) const |
| |
Проекция точки на плоскость MLS. Подробнее...
|
|
MLSProjectionResults |
projectPointSimpleToPolynomialSurface (const double u, const double v) const |
| |
Проекция точки вдоль нормали к полиномиальной поверхности, используя плоскость MLS. Подробнее...
|
|
MLSProjectionResults |
projectPoint (const Eigen::Vector3d &pt, ProjectionMethod method, int required_neighbors=0) const |
| |
Проекция точки с использованием указанного метода. Подробнее...
|
|
MLSProjectionResults |
projectQueryPoint (ProjectionMethod method, int required_neighbors=0) const |
| |
Проекция точки запроса, используемой для построения поверхности mls, с использованием указанного метода. Подробнее...
|
| 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={}) |
| |
Сглаживание заданной точки и ее окрестности с помощью метода наименьших квадратов (MLS). Подробнее...
|
Структура данных, используемая для хранения результатов подгонки MLS.
Определение в строке 59 файла mls.h.
ProjectionMethod
| Перечисление |
|
NONE |
Проектировать на плоскость mls. |
|
SIMPLE |
Проектировать вдоль нормали к плоскости mls на поверхность многочлена. |
|
ORTHOGONAL |
Проектировать на ближайшую точку на поверхности многочлена. |
Определение в строке 61 файла mls.h.
MLSResult() [1/2]
| pcl::MLSResult::MLSResult | ( | |
) | | | inline |
Определение в строке 92 файла 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 |
Вычисление главных кривизн с использованием полиномиальной поверхности.
- Параметры
-
| [in] |
u |
Координата u точки в локальной системе координат MLS. |
| [in] |
v |
Координата v точки в локальной системе координат MLS. |
- Возвращает
- Главные кривизны [k1, k2] в заданных координатах uv.
- Примечание
- В случае ошибки возвращается 1e-5.
Используется в calculatePrincipleCurvatures().
calculatePrincipleCurvatures()
| Eigen::Vector2f pcl::MLSResult::calculatePrincipleCurvatures | ( | const double |
u, | | | const double |
v | | ) | |
const | | inline |
Вычисление главных кривизн с использованием полиномиальной поверхности.
- Параметры
-
| [in] |
u |
Координата u точки в локальной системе координат MLS. |
| [in] |
v |
Координата v точки в локальной системе координат MLS. |
- Возвращает
- Главные кривизны [k1, k2] в заданных координатах uv.
- Примечание
- В случае ошибки возвращается 1e-5.
- Устаревшее:
- Планируется к удалению в версии 1.15: "используйте calculatePrincipalCurvatures() вместо этого"
Определение в строке 155 файла mls.h.
Ссылки на 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 = {} |
| ) | |
|
Сглаживание заданной точки и ее окрестности с помощью метода наименьших квадратов.
- Параметры
-
| [in] |
cloud |
облако точек, используется совместно с index и nn_indices |
| [in] |
index |
индекс целевой точки в облаке точек |
| [in] |
nn_indices |
набор индексов ближайших соседей для pt |
| [in] |
search_radius |
радиус поиска ближайших соседей для pt |
| [in] |
polynomial_order |
степень полинома, подгоняемого под ближайших соседей |
| [in] |
weight_func |
определяет функцию весов для полиномиальной аппроксимации |
getMLSCoordinates() [1/2]
| void pcl::MLSResult::getMLSCoordinates | ( | const Eigen::Vector3d & |
pt, | | | double & |
u, | | | double & |
v | | ) | |
const | | inline |
Вычисление 2D координат точки в системе координат MLS.
- Параметры
-
| [in] |
pt |
Точка |
| [out] |
u |
Координата u точки в локальной системе координат MLS. |
| [out] |
v |
Координата v точки в локальной системе координат MLS. |
getMLSCoordinates() [2/2]
| void pcl::MLSResult::getMLSCoordinates | ( | const Eigen::Vector3d & |
pt, | | | double & |
u, | | | double & |
v, | | | double & |
w | | ) | |
const | | inline |
Вычисление 3D координат точки в системе координат MLS.
- Параметры
-
| [in] |
pt |
Точка |
| [out] |
u |
Координата u точки в локальной системе координат MLS. |
| [out] |
v |
Координата v точки в локальной системе координат MLS. |
| [out] |
w |
Координата w точки в локальной системе координат MLS. |
getPolynomialPartialDerivative()
Вычислить частные производные первого и второго порядка полинома.
- Параметры
-
| [вход] |
u |
Координата u точки в локальной системе координат MLS. |
| [вход] |
v |
Координата v точки в локальной системе координат MLS. |
- Возвращает
- Частные производные полинома в заданных координатах uv.
Определение в строке 492 файла mls.hpp.
getPolynomialValue()
| double pcl::MLSResult::getPolynomialValue | ( | const double |
u, | | | const double |
v | | ) | |
const | | inline |
Вычислить значение полинома.
- Параметры
-
| [вход] |
u |
Координата u точки в локальной системе координат MLS. |
| [вход] |
v |
Координата v точки в локальной системе координат MLS. |
- Возвращает
- Значение полинома в заданных координатах uv.
Определение в строке 470 файла mls.hpp.
projectPoint()
Проецировать точку, используя указанный метод.
- Параметры
-
| [вход] |
pt |
Точка, подлежащая проецированию. |
| [вход] |
method |
Метод проецирования. |
| [вход] |
required_neighbors |
Минимальное количество необходимых соседей. |
- Примечание
- Если required_neighbors равно 0, то разрешено любое количество соседей.
- Если required_neighbors не выполняется, то происходит проекция на плоскость mls.
- Возвращает
- MLSProjectionResults для входных данных.
Определение в строке 637 файла mls.hpp.
projectPointOrthogonalToPolynomialSurface()
Проектировать точку ортогонально к поверхности полинома.
- Параметры
-
| [вход] |
u |
Координата u точки в локальной системе координат MLS. |
| [вход] |
v |
Координата v точки в локальной системе координат MLS. |
| [вход] |
w |
Координата w точки в локальной системе координат MLS. |
- Возвращает
- MLSProjectionResults для входных данных.
- Примечание
- Если MLSResults не содержит данных полинома, то точка проецируется на плоскость mls.
- Если оптимизация расходится, выполняется простая проекция на поверхность полинома.
- Реализация основана на https://math.stackexchange.com/questions/1497093/shortest-distance-between-point-and-surface
Определение в строке 537 файла mls.hpp.
projectPointSimpleToPolynomialSurface()
projectPointToMLSPlane()
projectQueryPoint()
c_vec
| Eigen::VectorXd pcl::MLSResult::c_vec |
Коэффициенты полинома. Пример: 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.
Определение в строке 230 файла mls.h.
curvature
| float pcl::MLSResult::curvature |
mean
| Eigen::Vector3d pcl::MLSResult::mean |
Средняя точка всех соседей.
Определение в строке 226 файла mls.h.
num_neighbors
| int pcl::MLSResult::num_neighbors |
order
| int pcl::MLSResult::order |
Порядок полинома.
Если order > 1, то используется полиномиальная аппроксимация
Определение в строке 233 файла mls.h.
plane_normal
| Eigen::Vector3d pcl::MLSResult::plane_normal |
Нормаль к локальной плоскости точки запроса.
Определение в строке 227 файла mls.h.
query_point
| Eigen::Vector3d pcl::MLSResult::query_point |
Точка запроса, относительно которой была сгенерирована поверхность mls.
Определение в строке 225 файла mls.h.
u_axis
| Eigen::Vector3d pcl::MLSResult::u_axis |
Ось, соответствующая u-координатам локальной плоскости точки запроса.
Определение в строке 228 файла mls.h.
v_axis
| Eigen::Vector3d pcl::MLSResult::v_axis |
Ось, соответствующая v-координатам локальной плоскости точки запроса.
Определение в строке 229 файла mls.h.
valid
| bool pcl::MLSResult::valid |
Если True, данные результатов mls валидны, иначе False.
Определение в строке 234 файла mls.h.
Документация для этой структуры была сгенерирована из следующих файлов: