pcl::RangeImageBorderExtractor Class Reference
Module features

Extract obstacle borders from range images, meaning positions where there is a transition from foreground to background. More...

`#include <pcl/features/range_image_border_extractor.h>`

Inheritance diagram for pcl::RangeImageBorderExtractor:

## Classes

struct | LocalSurface
| Stores some information extracted from the neighborhood of a point. More...
struct | Parameters
| Parameters used in this class. More...
struct | ShadowBorderIndices
| Stores the indices of the shadow border corresponding to obstacle borders. More...

## Public Types

using | Ptr = shared_ptr< RangeImageBorderExtractor >
using | ConstPtr = shared_ptr< const RangeImageBorderExtractor >
using | BaseClass = Feature< PointWithRange, BorderDescription >
Public Types inherited from pcl::Feature< PointWithRange, BorderDescription >
using | BaseClass = PCLBase< PointWithRange >
using | Ptr = shared_ptr< Feature< PointWithRange, BorderDescription > >
using | ConstPtr = shared_ptr< const Feature< PointWithRange, BorderDescription > >
using | KdTree = pcl::search::Search< PointWithRange >
using | KdTreePtr = typename KdTree::Ptr
using | PointCloudIn = pcl::PointCloud< PointWithRange >
using | PointCloudInPtr = typename PointCloudIn::Ptr
using | PointCloudInConstPtr = typename PointCloudIn::ConstPtr
using | PointCloudOut = pcl::PointCloud< BorderDescription >
using | SearchMethod = std::function< int(std::size_t, double, pcl::Indices &, std::vector< float > &)>
using | SearchMethodSurface = std::function< int(const PointCloudIn &cloud, std::size_t index, double, pcl::Indices &, std::vector< float > &)>
Public Types inherited from pcl::PCLBase< PointT >
using | PointCloud = pcl::PointCloud< PointT >
using | PointCloudPtr = typename PointCloud::Ptr
using | PointCloudConstPtr = typename PointCloud::ConstPtr
using | PointIndicesPtr = PointIndices::Ptr
using | PointIndicesConstPtr = PointIndices::ConstPtr

## Public Member Functions

| RangeImageBorderExtractor (const RangeImage *range_image=nullptr)
| Constructor. More...
| ~RangeImageBorderExtractor ()
| Destructor. More...
void | setRangeImage (const RangeImage *range_image)
| Provide a pointer to the range image. More...
void | clearData ()
| Erase all data calculated for the current range image. More...
float * | getAnglesImageForBorderDirections ()
| Get the 2D directions in the range image from the border directions - probably mainly useful for visualization. More...
float * | getAnglesImageForSurfaceChangeDirections ()
| Get the 2D directions in the range image from the surface change directions - probably mainly useful for visualization. More...
void | compute (PointCloudOut &output)
| Overwrite the compute function of the base class. More...
Parameters & | getParameters ()
bool | hasRangeImage () const
const RangeImage & | getRangeImage () const
float * | getBorderScoresLeft ()
float * | getBorderScoresRight ()
float * | getBorderScoresTop ()
float * | getBorderScoresBottom ()
LocalSurface ** | getSurfaceStructure ()
PointCloudOut & | getBorderDescriptions ()
ShadowBorderIndices ** | getShadowBorderInformations ()
Eigen::Vector3f ** | getBorderDirections ()
float * | getSurfaceChangeScores ()
Eigen::Vector3f * | getSurfaceChangeDirections ()
Public Member Functions inherited from pcl::Feature< PointWithRange, BorderDescription >
| Feature ()
| Empty constructor. More...
virtual | ~Feature ()
| Empty destructor. More...
void | setSearchSurface (const PointCloudInConstPtr &cloud)
| Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. More...
PointCloudInConstPtr | getSearchSurface () const
| Get a pointer to the surface point cloud dataset. More...
void | setSearchMethod (const KdTreePtr &tree)
| Provide a pointer to the search object. More...
KdTreePtr | getSearchMethod () const
| Get a pointer to the search method used. More...
double | getSearchParameter () const
| Get the internal search parameter. More...
void | setKSearch (int k)
| Set the number of k nearest neighbors to use for the feature estimation. More...
int | getKSearch () const
| get the number of k nearest neighbors used for the feature estimation. More...
void | setRadiusSearch (double radius)
| Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. More...
double | getRadiusSearch () const
| Get the sphere radius used for determining the neighbors. More...
void | compute (PointCloudOut &output)
| Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () More...
Public Member Functions inherited from pcl::PCLBase< PointT >
| PCLBase ()
| Empty constructor. More...
| PCLBase (const PCLBase &base)
| Copy constructor. More...
virtual | ~PCLBase ()=default
| Destructor. More...
virtual void | setInputCloud (const PointCloudConstPtr &cloud)
| Provide a pointer to the input dataset. More...
PointCloudConstPtr const | getInputCloud () const
| Get a pointer to the input point cloud dataset. More...
virtual void | setIndices (const IndicesPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (const IndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (const PointIndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols)
| Set the indices for the points laying within an interest region of the point cloud. More...
IndicesPtr | getIndices ()
| Get a pointer to the vector of indices used. More...
IndicesConstPtr const | getIndices () const
| Get a pointer to the vector of indices used. More...
const PointT & | operator[] (std::size_t pos) const
| Override PointCloud operator[] to shorten code. More...

## Static Public Member Functions

static float | getObstacleBorderAngle (const BorderTraits &border_traits)
| Take the information from BorderTraits to calculate the local direction of the border. More...

## Protected Member Functions

float | getNeighborDistanceChangeScore (const LocalSurface &local_surface, int x, int y, int offset_x, int offset_y, int pixel_radius=1) const
| Calculate a border score based on how distant the neighbor is, compared to the closest neighbors /param local_surface /param x /param y /param offset_x /param offset_y /param pixel_radius (defaults to 1) /return the resulting border score. More...
float | getNormalBasedBorderScore (const LocalSurface &local_surface, int x, int y, int offset_x, int offset_y) const
| Calculate a border score based on how much the neighbor is away from the local surface plane. More...
bool | changeScoreAccordingToShadowBorderValue (int x, int y, int offset_x, int offset_y, float *border_scores, float *border_scores_other_direction, int &shadow_border_idx) const
| Find the best corresponding shadow border and lower score according to the shadow borders value. More...
float | updatedScoreAccordingToNeighborValues (int x, int y, const float *border_scores) const
| Returns a new score for the given pixel that is >= the original value, based on the neighbors values. More...
float * | updatedScoresAccordingToNeighborValues (const float *border_scores) const
| For all pixels, returns a new score that is >= the original value, based on the neighbors values. More...
void | updateScoresAccordingToNeighborValues ()
| Replace all border score values with updates according to updatedScoreAccordingToNeighborValues. More...
bool | checkPotentialBorder (int x, int y, int offset_x, int offset_y, float *border_scores_left, float *border_scores_right, int &shadow_border_idx) const
| Check if a potential border point has a corresponding shadow border. More...
bool | checkIfMaximum (int x, int y, int offset_x, int offset_y, float *border_scores, int shadow_border_idx) const
| Check if a potential border point is a maximum regarding the border score. More...
void | findAndEvaluateShadowBorders ()
| Find the best corresponding shadow border and lower score according to the shadow borders value. More...
void | extractLocalSurfaceStructure ()
| Extract local plane information in every point (see getSurfaceStructure ()) More...
void | extractBorderScoreImages ()
| Get images representing the probability that the corresponding pixels are borders in that direction (see getBorderScores... More...
void | classifyBorders ()
| Classify the pixels in the range image according to the different classes defined below in enum BorderClass. More...
void | calculateBorderDirection (int x, int y)
| Calculate the 3D direction of the border just using the border traits at this position (facing away from the obstacle) More...
void | calculateBorderDirections ()
| Call calculateBorderDirection for every point and average the result over parameters_.pixel_radius_border_direction. More...
bool | get3dDirection (const BorderDescription &border_description, Eigen::Vector3f &direction, const LocalSurface *local_surface=nullptr)
| Calculate a 3d direction from a border point by projecting the direction in the range image - returns false if direction could not be calculated. More...
bool | calculateMainPrincipalCurvature (int x, int y, int radius, float &magnitude, Eigen::Vector3f &main_direction) const
| Calculate the main principal curvature (the largest eigenvalue and corresponding eigenvector for the normals in the area) in the given point. More...
void | calculateSurfaceChanges ()
| Uses either the border or principal curvature to define a score how much the surface changes in a point (1 for a border) and what the main direction of that change is. More...
void | blurSurfaceChanges ()
| Apply a blur to the surface change images. More...
void | computeFeature (PointCloudOut &output) override
| Implementation of abstract derived function. More...
Protected Member Functions inherited from pcl::Feature< PointWithRange, BorderDescription >
const std::string & | getClassName () const
| Get a string representation of the name of this class. More...
virtual bool | initCompute ()
| This method should get called before starting the actual computation. More...
virtual bool | deinitCompute ()
| This method should get called after ending the actual computation. More...
int | searchForNeighbors (std::size_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const
| Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface. More...
int | searchForNeighbors (const PointCloudIn &cloud, std::size_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const
| Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface. More...
Protected Member Functions inherited from pcl::PCLBase< PointT >
bool | initCompute ()
| This method should get called before starting the actual computation. More...
bool | deinitCompute ()
| This method should get called after finishing the actual computation. More...

## Protected Attributes

Parameters | parameters_
const RangeImage * | range_image_
int | range_image_size_during_extraction_
std::vector< float > | border_scores_left_
std::vector< float > | border_scores_right_
std::vector< float > | border_scores_top_
std::vector< float > | border_scores_bottom_
LocalSurface ** | surface_structure_
PointCloudOut * | border_descriptions_
ShadowBorderIndices ** | shadow_border_informations_
Eigen::Vector3f ** | border_directions_
float * | surface_change_scores_
Eigen::Vector3f * | surface_change_directions_
Protected Attributes inherited from pcl::Feature< PointWithRange, BorderDescription >
std::string | feature_name_
| The feature name. More...
SearchMethodSurface | search_method_surface_
| The search method template for points. More...
PointCloudInConstPtr | surface_
| An input point cloud describing the surface that is to be used for nearest neighbors estimation. More...
KdTreePtr | tree_
| A pointer to the spatial search object. More...
double | search_parameter_
| The actual search parameter (from either search_radius_ or k_). More...
double | search_radius_
| The nearest neighbors search radius for each point. More...
int | k_
| The number of K nearest neighbors to use for each point. More...
bool | fake_surface_
| If no surface is given, we use the input PointCloud as the surface. More...
Protected Attributes inherited from pcl::PCLBase< PointT >
PointCloudConstPtr | input_
| The input point cloud dataset. More...
IndicesPtr | indices_
| A pointer to the vector of point indices to use. More...
bool | use_indices_
| Set to true if point indices are used. More...
bool | fake_indices_
| If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More...

## Detailed Description

Extract obstacle borders from range images, meaning positions where there is a transition from foreground to background.

Author
  Bastian Steder

Definition at line 55 of file range_image_border_extractor.h.

## Member Typedef Documentation

## BaseClass

using pcl::RangeImageBorderExtractor::BaseClass = Feature<PointWithRange,BorderDescription>

Definition at line 61 of file range_image_border_extractor.h.

## ConstPtr

using pcl::RangeImageBorderExtractor::ConstPtr = shared_ptr<const RangeImageBorderExtractor>

Definition at line 59 of file range_image_border_extractor.h.

## Ptr

using pcl::RangeImageBorderExtractor::Ptr = shared_ptr<RangeImageBorderExtractor>

Definition at line 58 of file range_image_border_extractor.h.

## Constructor & Destructor Documentation

## RangeImageBorderExtractor()

pcl::RangeImageBorderExtractor::RangeImageBorderExtractor | ( | const RangeImage * | range_image = `nullptr` | ) |

Constructor.

## ~RangeImageBorderExtractor()

pcl::RangeImageBorderExtractor::~RangeImageBorderExtractor | ( |  | ) |

Destructor.

## Member Function Documentation

## blurSurfaceChanges()

void pcl::RangeImageBorderExtractor::blurSurfaceChanges | ( |  | ) |

protected

Apply a blur to the surface change images.

## calculateBorderDirection()

void pcl::RangeImageBorderExtractor::calculateBorderDirection | ( | int | x,
|  | int | y
| ) |  |

inline protected

Calculate the 3D direction of the border just using the border traits at this position (facing away from the obstacle)

Parameters

  x | the x-coordinate of the input position
  y | the y-coordinate of the input position

Definition at line 162 of file range_image_border_extractor.hpp.

References border_directions_, pcl::BORDER_TRAIT__OBSTACLE_BORDER, get3dDirection(), range_image_, surface_structure_, pcl::BorderDescription::traits, and pcl::PointCloud< PointT >::width.

## calculateBorderDirections()

void pcl::RangeImageBorderExtractor::calculateBorderDirections | ( |  | ) |

protected

Call calculateBorderDirection for every point and average the result over parameters_.pixel_radius_border_direction.

## calculateMainPrincipalCurvature()

bool pcl::RangeImageBorderExtractor::calculateMainPrincipalCurvature | ( | int | x,
|  | int | y,
|  | int | radius,
|  | float & | magnitude,
|  | Eigen::Vector3f & | main_direction
| ) |  | const

inline protected

Calculate the main principal curvature (the largest eigenvalue and corresponding eigenvector for the normals in the area) in the given point.

Parameters

  x | the x-coordinate of the input point
  y | the y-coordinate of the input point
  radius | the pixel radius that is used to find neighboring points
  magnitude | the resulting magnitude
  main_direction | the resulting direction

Definition at line 312 of file range_image_border_extractor.hpp.

References pcl::VectorAverage< real, dimension >::add(), pcl::BORDER_TRAIT__SHADOW_BORDER, pcl::BORDER_TRAIT__VEIL_POINT, pcl::VectorAverage< real, dimension >::doPCA(), pcl::VectorAverage< real, dimension >::getNoOfSamples(), pcl::RangeImage::isValid(), pcl::RangeImageBorderExtractor::LocalSurface::normal_no_jumps, range_image_, surface_structure_, and pcl::PointCloud< PointT >::width.

## calculateSurfaceChanges()

void pcl::RangeImageBorderExtractor::calculateSurfaceChanges | ( |  | ) |

protected

Uses either the border or principal curvature to define a score how much the surface changes in a point (1 for a border) and what the main direction of that change is.

## changeScoreAccordingToShadowBorderValue()

bool pcl::RangeImageBorderExtractor::changeScoreAccordingToShadowBorderValue | ( | int | x,
|  | int | y,
|  | int | offset_x,
|  | int | offset_y,
|  | float * | border_scores,
|  | float * | border_scores_other_direction,
|  | int & | shadow_border_idx
| ) |  | const

inline protected

Find the best corresponding shadow border and lower score according to the shadow borders value.

Parameters

  x |
  y |
  offset_x |
  offset_y |
  border_scores |
  border_scores_other_direction |
  shadow_border_idx |

Returns

Definition at line 180 of file range_image_border_extractor.hpp.

References pcl::RangeImage::isInImage(), pcl::RangeImage::isMaxRange(), pcl::RangeImageBorderExtractor::Parameters::minimum_border_probability, parameters_, pcl::RangeImageBorderExtractor::Parameters::pixel_radius_borders, range_image_, and pcl::PointCloud< PointT >::width.

## checkIfMaximum()

bool pcl::RangeImageBorderExtractor::checkIfMaximum | ( | int | x,
|  | int | y,
|  | int | offset_x,
|  | int | offset_y,
|  | float * | border_scores,
|  | int | shadow_border_idx
| ) |  | const

inline protected

Check if a potential border point is a maximum regarding the border score.

Parameters

  x | the x-coordinate of the input point
  y | the y-coordinate of the input point
  offset_x |
  offset_y |
  border_scores |
  shadow_border_idx |

Returns
  a boolean value indicating whether or not the point is a maximum

Definition at line 289 of file range_image_border_extractor.hpp.

References pcl::RangeImage::isInImage(), parameters_, pcl::RangeImageBorderExtractor::Parameters::pixel_radius_borders, range_image_, and pcl::PointCloud< PointT >::width.

## checkPotentialBorder()

bool pcl::RangeImageBorderExtractor::checkPotentialBorder | ( | int | x,
|  | int | y,
|  | int | offset_x,
|  | int | offset_y,
|  | float * | border_scores_left,
|  | float * | border_scores_right,
|  | int & | shadow_border_idx
| ) |  | const

inline protected

Check if a potential border point has a corresponding shadow border.

Parameters

  x | the x-coordinate of the input point
  y | the y-coordinate of the input point
  offset_x |
  offset_y |
  border_scores_left |
  border_scores_right |
  shadow_border_idx |

Returns
  a boolean value indicating whether or not the point has a corresponding shadow border

Definition at line 258 of file range_image_border_extractor.hpp.

References pcl::RangeImage::isInImage(), pcl::RangeImageBorderExtractor::Parameters::minimum_border_probability, parameters_, pcl::RangeImageBorderExtractor::Parameters::pixel_radius_borders, range_image_, and pcl::PointCloud< PointT >::width.

## classifyBorders()

void pcl::RangeImageBorderExtractor::classifyBorders | ( |  | ) |

protected

Classify the pixels in the range image according to the different classes defined below in enum BorderClass.

minImpactAngle (in radians) defines how flat the angle at which a surface was seen can be.

## clearData()

void pcl::RangeImageBorderExtractor::clearData | ( |  | ) |

Erase all data calculated for the current range image.

## compute()

void pcl::RangeImageBorderExtractor::compute | ( | PointCloudOut & | output | ) |

Overwrite the compute function of the base class.

## computeFeature()

void pcl::RangeImageBorderExtractor::computeFeature | ( | PointCloudOut & | output | ) |

override protected virtual

Implementation of abstract derived function.

Implements pcl::Feature< PointWithRange, BorderDescription >.

## extractBorderScoreImages()

void pcl::RangeImageBorderExtractor::extractBorderScoreImages | ( |  | ) |

protected

Get images representing the probability that the corresponding pixels are borders in that direction (see getBorderScores...

())

## extractLocalSurfaceStructure()

void pcl::RangeImageBorderExtractor::extractLocalSurfaceStructure | ( |  | ) |

protected

Extract local plane information in every point (see getSurfaceStructure ())

## findAndEvaluateShadowBorders()

void pcl::RangeImageBorderExtractor::findAndEvaluateShadowBorders | ( |  | ) |

protected

Find the best corresponding shadow border and lower score according to the shadow borders value.

## get3dDirection()

bool pcl::RangeImageBorderExtractor::get3dDirection | ( | const BorderDescription & | border_description,
|  | Eigen::Vector3f & | direction,
|  | const LocalSurface * | local_surface = `nullptr`
| ) |  |

inline protected

Calculate a 3d direction from a border point by projecting the direction in the range image - returns false if direction could not be calculated.

Parameters

  border_description |
  direction |
  local_surface |

Returns
  a boolean value indicating whether or not a direction could be calculated

Definition at line 120 of file range_image_border_extractor.hpp.

References pcl::BORDER_TRAIT__OBSTACLE_BORDER_BOTTOM, pcl::BORDER_TRAIT__OBSTACLE_BORDER_LEFT, pcl::BORDER_TRAIT__OBSTACLE_BORDER_RIGHT, pcl::BORDER_TRAIT__OBSTACLE_BORDER_TOP, pcl::RangeImage::calculate3DPoint(), pcl::RangeImage::getPoint(), pcl::RangeImage::getSensorPos(), pcl::RangeImageBorderExtractor::LocalSurface::neighborhood_mean_no_jumps, pcl::RangeImageBorderExtractor::LocalSurface::normal_no_jumps, pcl::_PointWithRange::range, range_image_, pcl::BorderDescription::traits, pcl::BorderDescription::x, and pcl::BorderDescription::y.

Referenced by calculateBorderDirection().

## getAnglesImageForBorderDirections()

float* pcl::RangeImageBorderExtractor::getAnglesImageForBorderDirections | ( |  | ) |

Get the 2D directions in the range image from the border directions - probably mainly useful for visualization.

## getAnglesImageForSurfaceChangeDirections()

float* pcl::RangeImageBorderExtractor::getAnglesImageForSurfaceChangeDirections | ( |  | ) |

Get the 2D directions in the range image from the surface change directions - probably mainly useful for visualization.

## getBorderDescriptions()

PointCloudOut& pcl::RangeImageBorderExtractor::getBorderDescriptions | ( |  | ) |

inline

Definition at line 165 of file range_image_border_extractor.h.

## getBorderDirections()

Eigen::Vector3f** pcl::RangeImageBorderExtractor::getBorderDirections | ( |  | ) |

inline

Definition at line 171 of file range_image_border_extractor.h.

## getBorderScoresBottom()

float* pcl::RangeImageBorderExtractor::getBorderScoresBottom | ( |  | ) |

inline

Definition at line 159 of file range_image_border_extractor.h.

## getBorderScoresLeft()

float* pcl::RangeImageBorderExtractor::getBorderScoresLeft | ( |  | ) |

inline

Definition at line 150 of file range_image_border_extractor.h.

## getBorderScoresRight()

float* pcl::RangeImageBorderExtractor::getBorderScoresRight | ( |  | ) |

inline

Definition at line 153 of file range_image_border_extractor.h.

## getBorderScoresTop()

float* pcl::RangeImageBorderExtractor::getBorderScoresTop | ( |  | ) |

inline

Definition at line 156 of file range_image_border_extractor.h.

## getNeighborDistanceChangeScore()

float pcl::RangeImageBorderExtractor::getNeighborDistanceChangeScore | ( | const LocalSurface & | local_surface,
|  | int | x,
|  | int | y,
|  | int | offset_x,
|  | int | offset_y,
|  | int | pixel_radius = `1`
| ) |  | const

inline protected

Calculate a border score based on how distant the neighbor is, compared to the closest neighbors /param local_surface /param x /param y /param offset_x /param offset_y /param pixel_radius (defaults to 1) /return the resulting border score.

Definition at line 70 of file range_image_border_extractor.hpp.

References pcl::RangeImage::get1dPointAverage(), pcl::RangeImage::getPoint(), pcl::RangeImageBorderExtractor::LocalSurface::max_neighbor_distance_squared, pcl::_PointWithRange::range, range_image_, and pcl::squaredEuclideanDistance().

## getNormalBasedBorderScore()

float pcl::RangeImageBorderExtractor::getNormalBasedBorderScore | ( | const LocalSurface & | local_surface,
|  | int | x,
|  | int | y,
|  | int | offset_x,
|  | int | offset_y
| ) |  | const

inline protected

Calculate a border score based on how much the neighbor is away from the local surface plane.

Parameters

  local_surface |
  x |
  y |
  offset_x |
  offset_y |

Returns
  the resulting border score

## getObstacleBorderAngle()

float pcl::RangeImageBorderExtractor::getObstacleBorderAngle | ( | const BorderTraits & | border_traits | ) |

inline static

Take the information from BorderTraits to calculate the local direction of the border.

Parameters

  border_traits | contains the information needed to calculate the border angle

Definition at line 45 of file range_image_border_extractor.hpp.

References pcl::BORDER_TRAIT__OBSTACLE_BORDER_BOTTOM, pcl::BORDER_TRAIT__OBSTACLE_BORDER_LEFT, pcl::BORDER_TRAIT__OBSTACLE_BORDER_RIGHT, and pcl::BORDER_TRAIT__OBSTACLE_BORDER_TOP.

## getParameters()

Parameters& pcl::RangeImageBorderExtractor::getParameters | ( |  | ) |

inline

Definition at line 141 of file range_image_border_extractor.h.

## getRangeImage()

const RangeImage& pcl::RangeImageBorderExtractor::getRangeImage | ( |  | ) | const

inline

Definition at line 147 of file range_image_border_extractor.h.

## getShadowBorderInformations()

ShadowBorderIndices** pcl::RangeImageBorderExtractor::getShadowBorderInformations | ( |  | ) |

inline

Definition at line 168 of file range_image_border_extractor.h.

## getSurfaceChangeDirections()

Eigen::Vector3f* pcl::RangeImageBorderExtractor::getSurfaceChangeDirections | ( |  | ) |

inline

Definition at line 177 of file range_image_border_extractor.h.

## getSurfaceChangeScores()

float* pcl::RangeImageBorderExtractor::getSurfaceChangeScores | ( |  | ) |

inline

Definition at line 174 of file range_image_border_extractor.h.

## getSurfaceStructure()

LocalSurface** pcl::RangeImageBorderExtractor::getSurfaceStructure | ( |  | ) |

inline

Definition at line 162 of file range_image_border_extractor.h.

## hasRangeImage()

bool pcl::RangeImageBorderExtractor::hasRangeImage | ( |  | ) | const

inline

Definition at line 144 of file range_image_border_extractor.h.

## setRangeImage()

void pcl::RangeImageBorderExtractor::setRangeImage | ( | const RangeImage * | range_image | ) |

Provide a pointer to the range image.

Parameters

  range_image | a pointer to the range_image

## updatedScoreAccordingToNeighborValues()

float pcl::RangeImageBorderExtractor::updatedScoreAccordingToNeighborValues | ( | int | x,
|  | int | y,
|  | const float * | border_scores
| ) |  | const

inline protected

Returns a new score for the given pixel that is >= the original value, based on the neighbors values.

Parameters

  x | the x-coordinate of the input pixel
  y | the y-coordinate of the input pixel
  border_scores | the input border scores

Returns
  the resulting updated border score

Definition at line 226 of file range_image_border_extractor.hpp.

References pcl::RangeImage::isInImage(), pcl::RangeImageBorderExtractor::Parameters::minimum_border_probability, parameters_, range_image_, and pcl::PointCloud< PointT >::width.

## updatedScoresAccordingToNeighborValues()

float* pcl::RangeImageBorderExtractor::updatedScoresAccordingToNeighborValues | ( | const float * | border_scores | ) | const

protected

For all pixels, returns a new score that is >= the original value, based on the neighbors values.

Parameters

  border_scores | the input border scores

Returns
  a pointer to the resulting array of updated scores

## updateScoresAccordingToNeighborValues()

void pcl::RangeImageBorderExtractor::updateScoresAccordingToNeighborValues | ( |  | ) |

protected

Replace all border score values with updates according to updatedScoreAccordingToNeighborValues.

## Member Data Documentation

## border_descriptions_

PointCloudOut* pcl::RangeImageBorderExtractor::border_descriptions_

protected

Definition at line 188 of file range_image_border_extractor.h.

## border_directions_

Eigen::Vector3f** pcl::RangeImageBorderExtractor::border_directions_

protected

Definition at line 190 of file range_image_border_extractor.h.

Referenced by calculateBorderDirection().

## border_scores_bottom_

std::vector<float> pcl::RangeImageBorderExtractor::border_scores_bottom_

protected

Definition at line 186 of file range_image_border_extractor.h.

## border_scores_left_

std::vector<float> pcl::RangeImageBorderExtractor::border_scores_left_

protected

Definition at line 185 of file range_image_border_extractor.h.

## border_scores_right_

std::vector<float> pcl::RangeImageBorderExtractor::border_scores_right_

protected

Definition at line 185 of file range_image_border_extractor.h.

## border_scores_top_

std::vector<float> pcl::RangeImageBorderExtractor::border_scores_top_

protected

Definition at line 186 of file range_image_border_extractor.h.

## parameters_

Parameters pcl::RangeImageBorderExtractor::parameters_

protected

Definition at line 182 of file range_image_border_extractor.h.

Referenced by changeScoreAccordingToShadowBorderValue(), checkIfMaximum(), checkPotentialBorder(), and updatedScoreAccordingToNeighborValues().

## range_image_

const RangeImage* pcl::RangeImageBorderExtractor::range_image_

protected

Definition at line 183 of file range_image_border_extractor.h.

Referenced by calculateBorderDirection(), calculateMainPrincipalCurvature(), changeScoreAccordingToShadowBorderValue(), checkIfMaximum(), checkPotentialBorder(), get3dDirection(), getNeighborDistanceChangeScore(), and updatedScoreAccordingToNeighborValues().

## range_image_size_during_extraction_

int pcl::RangeImageBorderExtractor::range_image_size_during_extraction_

protected

Definition at line 184 of file range_image_border_extractor.h.

## shadow_border_informations_

ShadowBorderIndices** pcl::RangeImageBorderExtractor::shadow_border_informations_

protected

Definition at line 189 of file range_image_border_extractor.h.

## surface_change_directions_

Eigen::Vector3f* pcl::RangeImageBorderExtractor::surface_change_directions_

protected

Definition at line 193 of file range_image_border_extractor.h.

## surface_change_scores_

float* pcl::RangeImageBorderExtractor::surface_change_scores_

protected

Definition at line 192 of file range_image_border_extractor.h.

## surface_structure_

LocalSurface** pcl::RangeImageBorderExtractor::surface_structure_

protected

Definition at line 187 of file range_image_border_extractor.h.

Referenced by calculateBorderDirection(), and calculateMainPrincipalCurvature().

The documentation for this class was generated from the following files:

- pcl/features/range_image_border_extractor.h
- pcl/features/impl/range_image_border_extractor.hpp