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