41 #include <pcl/features/feature.h>
47 template <
typename Po
intType>
58 using Ptr = shared_ptr<RangeImageBorderExtractor>;
59 using ConstPtr = shared_ptr<const RangeImageBorderExtractor>;
68 max_neighbor_distance_squared () {}
83 int left, right,
top, bottom;
89 Parameters () : max_no_of_threads(1), pixel_radius_borders (3), pixel_radius_plane_extraction (2), pixel_radius_border_direction (2),
90 minimum_border_probability (0.8f), pixel_radius_principal_curvature (2) {}
104 getObstacleBorderAngle (
const BorderTraits& border_traits);
117 setRangeImage (
const RangeImage* range_image);
127 getAnglesImageForBorderDirections ();
133 getAnglesImageForSurfaceChangeDirections ();
137 compute (PointCloudOut& output);
167 ShadowBorderIndices**
207 getNeighborDistanceChangeScore (
const LocalSurface& local_surface,
int x,
int y,
208 int offset_x,
int offset_y,
int pixel_radius=1)
const;
219 getNormalBasedBorderScore (
const LocalSurface& local_surface,
int x,
int y,
220 int offset_x,
int offset_y)
const;
233 changeScoreAccordingToShadowBorderValue (
int x,
int y,
int offset_x,
int offset_y,
float* border_scores,
234 float* border_scores_other_direction,
int& shadow_border_idx)
const;
243 updatedScoreAccordingToNeighborValues (
int x,
int y,
const float* border_scores)
const;
250 updatedScoresAccordingToNeighborValues (
const float* border_scores)
const;
254 updateScoresAccordingToNeighborValues ();
267 checkPotentialBorder (
int x,
int y,
int offset_x,
int offset_y,
float* border_scores_left,
268 float* border_scores_right,
int& shadow_border_idx)
const;
280 checkIfMaximum (
int x,
int y,
int offset_x,
int offset_y,
float* border_scores,
int shadow_border_idx)
const;
284 findAndEvaluateShadowBorders ();
288 extractLocalSurfaceStructure ();
294 extractBorderScoreImages ();
308 calculateBorderDirection (
int x,
int y);
314 calculateBorderDirections ();
324 get3dDirection (
const BorderDescription& border_description, Eigen::Vector3f& direction,
336 calculateMainPrincipalCurvature (
int x,
int y,
int radius,
float& magnitude,
337 Eigen::Vector3f& main_direction)
const;
342 calculateSurfaceChanges ();
346 blurSurfaceChanges ();
350 computeFeature (PointCloudOut &output)
override;
354 updatedScoresAccordingToNeighborValues (
const std::vector<float>& border_scores)
const;
358 #include <pcl/features/impl/range_image_border_extractor.hpp>