#include <pcl/io/openni_grabber.h>
#include <pcl/visualization/cloud_viewer.h>
#include <boost/thread/thread.hpp>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/io/io.h>
#include <boost/make_shared.hpp>
#include <pcl/common/time.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/search/pcl_search.h>
#include <pcl/features/integral_image_normal.h>
#include <pcl/filters/extract_indices.h>
#include <pcl/features/normal_3d.h>
#include <pcl/ModelCoefficients.h>
#include <boost/graph/incremental_components.hpp>
Go to the source code of this file.
Classes | |
class | PlaneSegTest |
Typedefs | |
typedef pcl::PointXYZ | PointT |
Functions | |
template<typename PointInT > | |
bool | comparePoints (PointInT p1, PointInT p2, double p1_d, double p2_d, float ang_thresh, float dist_thresh) |
comparePoints will compare the plane equations of two points. It requires a point type that includes normal information. The normal (a,b,c) and range (d) components of the normal are compared separately, so separate thresholds are available. | |
template<typename PointT , typename Normal > | |
void | extractEuclideanClustersModified (const pcl::PointCloud< PointT > &cloud, const pcl::PointCloud< Normal > &normals, float tolerance, const boost::shared_ptr< pcl::search::KdTree< PointT > > &tree, std::vector< pcl::PointIndices > &clusters, double eps_angle, unsigned int min_pts_per_cluster, unsigned int max_pts_per_cluster) |
template<typename PointInT , typename PointOutT > | |
void | extractPlanesByClustering (const pcl::PointCloud< PointInT > &cloud_in, std::vector< Eigen::Vector4f > &normals_out, std::vector< pcl::PointCloud< PointOutT > > &inliers, int min_inliers, double ang_thresh, double dist_thresh) |
extractPlanesByClustering makes use of the version of extractEuclideanClusters that also clusters on normal information in order to find all planes in the scene. | |
template<typename PointInT , typename PointOutT > | |
void | extractPlanesByFloodFill (const pcl::PointCloud< PointInT > &cloud_in, std::vector< pcl::ModelCoefficients > &normals_out, std::vector< pcl::PointCloud< PointOutT > > &inliers, unsigned min_inliers, float ang_thresh, float dist_thresh) |
extractPlanesByFloodFill finds all planes present in the input cloud, and outputs a vector of plane equations, as well as a vector of point clouds corresponding to the inliers of each detected plane. Only planes with more than min_inliers points are detected. | |
int | main () |
typedef pcl::PointXYZ PointT |
Definition at line 53 of file openni_floodfill_planar_segmentation.cpp.
bool comparePoints | ( | PointInT | p1, |
PointInT | p2, | ||
double | p1_d, | ||
double | p2_d, | ||
float | ang_thresh, | ||
float | dist_thresh | ||
) |
comparePoints will compare the plane equations of two points. It requires a point type that includes normal information. The normal (a,b,c) and range (d) components of the normal are compared separately, so separate thresholds are available.
Definition at line 62 of file openni_floodfill_planar_segmentation.cpp.
void extractEuclideanClustersModified | ( | const pcl::PointCloud< PointT > & | cloud, |
const pcl::PointCloud< Normal > & | normals, | ||
float | tolerance, | ||
const boost::shared_ptr< pcl::search::KdTree< PointT > > & | tree, | ||
std::vector< pcl::PointIndices > & | clusters, | ||
double | eps_angle, | ||
unsigned int | min_pts_per_cluster, | ||
unsigned int | max_pts_per_cluster | ||
) |
Definition at line 250 of file openni_floodfill_planar_segmentation.cpp.
void extractPlanesByClustering | ( | const pcl::PointCloud< PointInT > & | cloud_in, |
std::vector< Eigen::Vector4f > & | normals_out, | ||
std::vector< pcl::PointCloud< PointOutT > > & | inliers, | ||
int | min_inliers, | ||
double | ang_thresh, | ||
double | dist_thresh | ||
) |
extractPlanesByClustering makes use of the version of extractEuclideanClusters that also clusters on normal information in order to find all planes in the scene.
Definition at line 342 of file openni_floodfill_planar_segmentation.cpp.
void extractPlanesByFloodFill | ( | const pcl::PointCloud< PointInT > & | cloud_in, |
std::vector< pcl::ModelCoefficients > & | normals_out, | ||
std::vector< pcl::PointCloud< PointOutT > > & | inliers, | ||
unsigned | min_inliers, | ||
float | ang_thresh, | ||
float | dist_thresh | ||
) |
extractPlanesByFloodFill finds all planes present in the input cloud, and outputs a vector of plane equations, as well as a vector of point clouds corresponding to the inliers of each detected plane. Only planes with more than min_inliers points are detected.
Definition at line 79 of file openni_floodfill_planar_segmentation.cpp.
int main | ( | ) |
Definition at line 565 of file openni_floodfill_planar_segmentation.cpp.