Point Cloud Library (PCL)
1.9.1
|
OrganizedEdgeBase, OrganizedEdgeFromRGB, OrganizedEdgeFromNormals, and OrganizedEdgeFromRGBNormals find 3D edges from an organized point cloud data. More...
#include <pcl/features/organized_edge_detection.h>
Classes | |
struct | Neighbor |
Public Types | |
enum | { EDGELABEL_NAN_BOUNDARY =1, EDGELABEL_OCCLUDING =2, EDGELABEL_OCCLUDED =4, EDGELABEL_HIGH_CURVATURE =8, EDGELABEL_RGB_CANNY =16 } |
typedef boost::shared_ptr < OrganizedEdgeBase< PointT, PointLT > > | Ptr |
typedef boost::shared_ptr < const OrganizedEdgeBase < PointT, PointLT > > | ConstPtr |
![]() | |
typedef pcl::PointCloud< PointT > | PointCloud |
typedef PointCloud::Ptr | PointCloudPtr |
typedef PointCloud::ConstPtr | PointCloudConstPtr |
typedef boost::shared_ptr < PointIndices > | PointIndicesPtr |
typedef boost::shared_ptr < PointIndices const > | PointIndicesConstPtr |
Public Member Functions | |
OrganizedEdgeBase () | |
Constructor for OrganizedEdgeBase. More... | |
virtual | ~OrganizedEdgeBase () |
Destructor for OrganizedEdgeBase. More... | |
void | compute (pcl::PointCloud< PointLT > &labels, std::vector< pcl::PointIndices > &label_indices) const |
Perform the 3D edge detection (edges from depth discontinuities) More... | |
void | setDepthDisconThreshold (const float th) |
Set the tolerance in meters for difference in depth values between neighboring points. More... | |
float | getDepthDisconThreshold () const |
Get the tolerance in meters for difference in depth values between neighboring points. More... | |
void | setMaxSearchNeighbors (const int max_dist) |
Set the max search distance for deciding occluding and occluded edges. More... | |
int | getMaxSearchNeighbors () const |
Get the max search distance for deciding occluding and occluded edges. More... | |
void | setEdgeType (int edge_types) |
Set the detecting edge types. More... | |
int | getEdgeType () const |
Get the detecting edge types. More... | |
![]() | |
PCLBase () | |
Empty constructor. More... | |
PCLBase (const PCLBase &base) | |
Copy constructor. More... | |
virtual | ~PCLBase () |
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 (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols) |
Set the indices for the points laying within an interest region of the point cloud. More... | |
IndicesPtr const | 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[] (size_t pos) const |
Override PointCloud operator[] to shorten code. More... | |
Static Public Attributes | |
static const int | num_of_edgetype_ = 5 |
Protected Member Functions | |
void | extractEdges (pcl::PointCloud< PointLT > &labels) const |
Perform the 3D edge detection (edges from depth discontinuities) and assign point indices for each edge label. More... | |
void | assignLabelIndices (pcl::PointCloud< PointLT > &labels, std::vector< pcl::PointIndices > &label_indices) const |
Assign point indices for each edge label. 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... | |
Protected Attributes | |
float | th_depth_discon_ |
The tolerance in meters for difference in depth values between neighboring points (The value is set for 1 meter and is adapted with respect to depth value linearly. More... | |
int | max_search_neighbors_ |
The max search distance for deciding occluding and occluded edges. More... | |
int | detecting_edge_types_ |
The bit encoded value that represents edge types to detect. More... | |
![]() | |
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... | |
OrganizedEdgeBase, OrganizedEdgeFromRGB, OrganizedEdgeFromNormals, and OrganizedEdgeFromRGBNormals find 3D edges from an organized point cloud data.
Given an organized point cloud, they will output a PointCloud of edge labels and a vector of PointIndices. OrganizedEdgeBase accepts PCL_XYZ_POINT_TYPES and returns EDGELABEL_NAN_BOUNDARY, EDGELABEL_OCCLUDING, and EDGELABEL_OCCLUDED. OrganizedEdgeFromRGB accepts PCL_RGB_POINT_TYPES and returns EDGELABEL_NAN_BOUNDARY, EDGELABEL_OCCLUDING, EDGELABEL_OCCLUDED, and EDGELABEL_RGB_CANNY. OrganizedEdgeFromNormals accepts PCL_XYZ_POINT_TYPES with PCL_NORMAL_POINT_TYPES and returns EDGELABEL_NAN_BOUNDARY, EDGELABEL_OCCLUDING, EDGELABEL_OCCLUDED, and EDGELABEL_HIGH_CURVATURE. OrganizedEdgeFromRGBNormals accepts PCL_RGB_POINT_TYPES with PCL_NORMAL_POINT_TYPES and returns EDGELABEL_NAN_BOUNDARY, EDGELABEL_OCCLUDING, EDGELABEL_OCCLUDED, EDGELABEL_HIGH_CURVATURE, and EDGELABEL_RGB_CANNY.
Definition at line 58 of file organized_edge_detection.h.
typedef boost::shared_ptr<const OrganizedEdgeBase<PointT, PointLT> > pcl::OrganizedEdgeBase< PointT, PointLT >::ConstPtr |
Definition at line 70 of file organized_edge_detection.h.
typedef boost::shared_ptr<OrganizedEdgeBase<PointT, PointLT> > pcl::OrganizedEdgeBase< PointT, PointLT >::Ptr |
Definition at line 69 of file organized_edge_detection.h.
anonymous enum |
Enumerator | |
---|---|
EDGELABEL_NAN_BOUNDARY | |
EDGELABEL_OCCLUDING | |
EDGELABEL_OCCLUDED | |
EDGELABEL_HIGH_CURVATURE | |
EDGELABEL_RGB_CANNY |
Definition at line 139 of file organized_edge_detection.h.
|
inline |
Constructor for OrganizedEdgeBase.
Definition at line 77 of file organized_edge_detection.h.
|
inlinevirtual |
Destructor for OrganizedEdgeBase.
Definition at line 86 of file organized_edge_detection.h.
|
protected |
Assign point indices for each edge label.
[out] | labels | a PointCloud of edge labels |
[out] | label_indices | a vector of PointIndices corresponding to each edge label |
Definition at line 69 of file organized_edge_detection.hpp.
void pcl::OrganizedEdgeBase< PointT, PointLT >::compute | ( | pcl::PointCloud< PointLT > & | labels, |
std::vector< pcl::PointIndices > & | label_indices | ||
) | const |
Perform the 3D edge detection (edges from depth discontinuities)
Directions: 1 2 3 0 x 4 7 6 5 e.g.
[out] | labels | a PointCloud of edge labels |
[out] | label_indices | a vector of PointIndices corresponding to each edge label |
direction y means we came from pixel with label y to the center pixel x
Definition at line 54 of file organized_edge_detection.hpp.
References pcl::PointCloud< PointT >::height, pcl::Label::label, pcl::PointCloud< PointT >::points, and pcl::PointCloud< PointT >::width.
|
protected |
Perform the 3D edge detection (edges from depth discontinuities) and assign point indices for each edge label.
[out] | labels | a PointCloud of edge labels |
Definition at line 88 of file organized_edge_detection.hpp.
References pcl::OrganizedEdgeBase< PointT, PointLT >::Neighbor::d_index, pcl::OrganizedEdgeBase< PointT, PointLT >::Neighbor::d_x, pcl::OrganizedEdgeBase< PointT, PointLT >::Neighbor::d_y, and pcl::PointCloud< PointT >::width.
|
inline |
Get the tolerance in meters for difference in depth values between neighboring points.
Definition at line 106 of file organized_edge_detection.h.
References pcl::OrganizedEdgeBase< PointT, PointLT >::th_depth_discon_.
|
inline |
Get the detecting edge types.
Definition at line 134 of file organized_edge_detection.h.
References pcl::OrganizedEdgeBase< PointT, PointLT >::detecting_edge_types_.
|
inline |
Get the max search distance for deciding occluding and occluded edges.
Definition at line 120 of file organized_edge_detection.h.
References pcl::OrganizedEdgeBase< PointT, PointLT >::max_search_neighbors_.
|
inline |
Set the tolerance in meters for difference in depth values between neighboring points.
Definition at line 99 of file organized_edge_detection.h.
References pcl::OrganizedEdgeBase< PointT, PointLT >::th_depth_discon_.
|
inline |
Set the detecting edge types.
Definition at line 127 of file organized_edge_detection.h.
References pcl::OrganizedEdgeBase< PointT, PointLT >::detecting_edge_types_.
Referenced by pcl::OrganizedEdgeFromNormals< PointT, PointNT, PointLT >::OrganizedEdgeFromNormals(), pcl::OrganizedEdgeFromRGB< PointT, PointLT >::OrganizedEdgeFromRGB(), and pcl::OrganizedEdgeFromRGBNormals< PointT, PointNT, PointLT >::OrganizedEdgeFromRGBNormals().
|
inline |
Set the max search distance for deciding occluding and occluded edges.
Definition at line 113 of file organized_edge_detection.h.
References pcl::OrganizedEdgeBase< PointT, PointLT >::max_search_neighbors_.
|
protected |
The bit encoded value that represents edge types to detect.
Definition at line 179 of file organized_edge_detection.h.
Referenced by pcl::OrganizedEdgeBase< PointT, PointLT >::getEdgeType(), and pcl::OrganizedEdgeBase< PointT, PointLT >::setEdgeType().
|
protected |
The max search distance for deciding occluding and occluded edges.
Definition at line 176 of file organized_edge_detection.h.
Referenced by pcl::OrganizedEdgeBase< PointT, PointLT >::getMaxSearchNeighbors(), and pcl::OrganizedEdgeBase< PointT, PointLT >::setMaxSearchNeighbors().
|
static |
Definition at line 140 of file organized_edge_detection.h.
|
protected |
The tolerance in meters for difference in depth values between neighboring points (The value is set for 1 meter and is adapted with respect to depth value linearly.
(e.g. 2.0*th_depth_discon_ in 2 meter depth))
Definition at line 173 of file organized_edge_detection.h.
Referenced by pcl::OrganizedEdgeBase< PointT, PointLT >::getDepthDisconThreshold(), and pcl::OrganizedEdgeBase< PointT, PointLT >::setDepthDisconThreshold().