|
| 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().