|
enum | BorderPolicy { BORDER_POLICY_IGNORE,
BORDER_POLICY_MIRROR
} |
| Different types of border handling. More...
|
|
enum | NormalEstimationMethod { COVARIANCE_MATRIX,
AVERAGE_3D_GRADIENT,
AVERAGE_DEPTH_CHANGE,
SIMPLE_3D_GRADIENT
} |
| Different normal estimation methods. More...
|
|
using | Ptr = shared_ptr< IntegralImageNormalEstimation< PointInT, PointOutT > > |
|
using | ConstPtr = shared_ptr< const IntegralImageNormalEstimation< PointInT, PointOutT > > |
|
using | PointCloudIn = typename Feature< PointInT, PointOutT >::PointCloudIn |
|
using | PointCloudOut = typename Feature< PointInT, PointOutT >::PointCloudOut |
|
using | BaseClass = PCLBase< PointInT > |
|
using | Ptr = shared_ptr< Feature< PointInT, PointOutT > > |
|
using | ConstPtr = shared_ptr< const Feature< PointInT, PointOutT > > |
|
using | KdTree = pcl::search::Search< PointInT > |
|
using | KdTreePtr = typename KdTree::Ptr |
|
using | PointCloudIn = pcl::PointCloud< PointInT > |
|
using | PointCloudInPtr = typename PointCloudIn::Ptr |
|
using | PointCloudInConstPtr = typename PointCloudIn::ConstPtr |
|
using | PointCloudOut = pcl::PointCloud< PointOutT > |
|
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 > &)> |
|
using | PointCloud = pcl::PointCloud< PointInT > |
|
using | PointCloudPtr = typename PointCloud::Ptr |
|
using | PointCloudConstPtr = typename PointCloud::ConstPtr |
|
using | PointIndicesPtr = PointIndices::Ptr |
|
using | PointIndicesConstPtr = PointIndices::ConstPtr |
|
|
| IntegralImageNormalEstimation () |
| Constructor. More...
|
|
| ~IntegralImageNormalEstimation () |
| Destructor. More...
|
|
void | setRectSize (const int width, const int height) |
| Set the regions size which is considered for normal estimation. More...
|
|
void | setBorderPolicy (const BorderPolicy border_policy) |
| Sets the policy for handling borders. More...
|
|
void | computePointNormal (const int pos_x, const int pos_y, const unsigned point_index, PointOutT &normal) |
| Computes the normal at the specified position. More...
|
|
void | computePointNormalMirror (const int pos_x, const int pos_y, const unsigned point_index, PointOutT &normal) |
| Computes the normal at the specified position with mirroring for border handling. More...
|
|
void | setMaxDepthChangeFactor (float max_depth_change_factor) |
| The depth change threshold for computing object borders. More...
|
|
void | setNormalSmoothingSize (float normal_smoothing_size) |
| Set the normal smoothing size. More...
|
|
void | setNormalEstimationMethod (NormalEstimationMethod normal_estimation_method) |
| Set the normal estimation method. More...
|
|
void | setDepthDependentSmoothing (bool use_depth_dependent_smoothing) |
| Set whether to use depth depending smoothing or not. More...
|
|
void | setInputCloud (const typename PointCloudIn::ConstPtr &cloud) override |
| Provide a pointer to the input dataset (overwrites the PCLBase::setInputCloud method) More...
|
|
float * | getDistanceMap () |
| Returns a pointer to the distance map which was computed internally. More...
|
|
void | setViewPoint (float vpx, float vpy, float vpz) |
| Set the viewpoint. More...
|
|
void | getViewPoint (float &vpx, float &vpy, float &vpz) |
| Get the viewpoint. More...
|
|
void | useSensorOriginAsViewPoint () |
| sets whether the sensor origin or a user given viewpoint should be used. More...
|
|
| 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...
|
|
| 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...
|
|
const PointCloudConstPtr | 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...
|
|
const IndicesConstPtr | getIndices () const |
| Get a pointer to the vector of indices used. More...
|
|
const PointInT & | operator[] (std::size_t pos) const |
| Override PointCloud operator[] to shorten code. More...
|
|
|
void | computeFeature (PointCloudOut &output) override |
| Computes the normal for the complete cloud or only indices_ if provided. More...
|
|
void | computeFeatureFull (const float *distance_map, const float &bad_point, PointCloudOut &output) |
| Computes the normal for the complete cloud. More...
|
|
void | computeFeaturePart (const float *distance_map, const float &bad_point, PointCloudOut &output) |
| Computes the normal for part of the cloud specified by indices_. More...
|
|
void | initData () |
| Initialize the data structures, based on the normal estimation method chosen. More...
|
|
const std::string & | getClassName () const |
| Get a string representation of the name of this class. 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...
|
|
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...
|
|
template<typename PointInT, typename PointOutT>
class pcl::IntegralImageNormalEstimation< PointInT, PointOutT >
Surface normal estimation on organized data using integral images.
For detailed information about this method see:
S. Holzer and R. B. Rusu and M. Dixon and S. Gedikli and N. Navab,
Adaptive Neighborhood Selection for Real-Time Surface Normal Estimation
from Organized Point Cloud Data Using Integral Images, IROS 2012.
D. Holz, S. Holzer, R. B. Rusu, and S. Behnke (2011, July).
Real-Time Plane Segmentation using RGB-D Cameras. In Proceedings of
the 15th RoboCup International Symposium, Istanbul, Turkey.
http://www.ais.uni-bonn.de/~holz/papers/holz_2011_robocup.pdf
- Author
- Stefan Holzer
Definition at line 65 of file integral_image_normal.h.
template<typename PointInT , typename PointOutT >
Set the normal estimation method.
The current implemented algorithms are:
-
COVARIANCE_MATRIX - creates 9 integral images to compute the normal for a specific point from the covariance matrix of its local neighborhood.
-
AVERAGE_3D_GRADIENT - creates 6 integral images to compute smoothed versions of horizontal and vertical 3D gradients and computes the normals using the cross-product between these two gradients.
-
AVERAGE_DEPTH_CHANGE - creates only a single integral image and computes the normals from the average depth changes.
- Parameters
-
[in] | normal_estimation_method | the method used for normal estimation |
Definition at line 214 of file integral_image_normal.h.
Referenced by pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints(), pcl::TrajkovicKeypoint3D< PointInT, PointOutT, NormalT >::initCompute(), pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::initCompute(), pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::initCompute(), and pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::initCompute().