Low-level feature-extracting functions.
More...
|
LocalDescriptorsPtr | map_merge_3d::computeLocalDescriptors (const PointCloudConstPtr &points, const SurfaceNormalsPtr &normals, const PointCloudPtr &keypoints, Descriptor descriptor, double feature_radius) |
| Compute local feature descriptors around each keypoint. More...
|
|
SurfaceNormalsPtr | map_merge_3d::computeSurfaceNormals (const PointCloudConstPtr &input, double radius) |
| Estimate cloud surface normals. More...
|
|
PointCloudPtr | map_merge_3d::detectKeypoints (const PointCloudConstPtr &points, const SurfaceNormalsPtr &normals, Keypoint type, double threshold, double radius, double resolution) |
| Detects keypoints in the pointcloud. More...
|
|
PointCloudPtr | map_merge_3d::downSample (const PointCloudConstPtr &input, double resolution) |
| Voxelize input pointcloud to reduce number of points. More...
|
|
DOXYGEN_SKIP | map_merge_3d::ENUM_CLASS (Descriptor, DESCRIPTORS_NAMES_) |
|
| map_merge_3d::ENUM_CLASS (Keypoint, SIFT, HARRIS) |
|
PointCloudPtr | map_merge_3d::removeOutliers (const PointCloudConstPtr &input, double radius, int min_neighbours) |
| Removes outliers from the pointcloud. More...
|
|
Low-level feature-extracting functions.
Low-level functions to extract features from pointclouds and to preprocess pointclouds for feature extraction. These function operate on individual pointcloud.
◆ computeLocalDescriptors()
Compute local feature descriptors around each keypoint.
If descriptors can not be computed to some of the keypoints, those keypoints will be removed from the keypoints cloud. Therefore the keypoints cloud can be also modified.
- Parameters
-
points | input pointcloud |
normals | input normals for the cloud |
keypoints | input detected keypoints, where descriptors will be computed |
descriptor | descriptor type to extract |
feature_radius | search radius for descriptors |
- Returns
- cloud of local descriptors
◆ computeSurfaceNormals()
Estimate cloud surface normals.
- Parameters
-
input | input cloud |
radius | local neighbourhood size for estimating normals |
- Returns
- cloud of computed normals
◆ detectKeypoints()
Detects keypoints in the pointcloud.
Normals are used only for geometric keypoints (HARRIS). SIFT keypoints requires valid colour information with points.
- Parameters
-
points | input pointcloud |
normals | normals for input |
type | keypoint type to extract |
threshold | determines how much keypoints to extract (corner measure) |
radius | area used for keypoint detection around each point |
resolution | smallest scale of the scale pyramid if the detector uses one |
- Returns
- pointcloud of keypoints
◆ downSample()
Voxelize input pointcloud to reduce number of points.
- Parameters
-
input | input pointcloud |
resolution | required resolution for voxelization |
- Returns
- Voxelized pointcloud
◆ ENUM_CLASS() [1/2]
DOXYGEN_SKIP map_merge_3d::ENUM_CLASS |
( |
Descriptor |
, |
|
|
DESCRIPTORS_NAMES_ |
|
|
) |
| |
◆ ENUM_CLASS() [2/2]
map_merge_3d::ENUM_CLASS |
( |
Keypoint |
, |
|
|
SIFT |
, |
|
|
HARRIS |
|
|
) |
| |
◆ removeOutliers()
Removes outliers from the pointcloud.
Outliers with small number of neighbours will be removed.
- Parameters
-
input | input pointcloud |
radius | Area where neighbours will be counted |
min_neighbours | Minimal number of neighbours for the point to be kept |
- Returns
- filtered pointcloud