1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
#pragma once
#include "typedefs.h"
#include <pcl/ModelCoefficients.h>
#include <pcl/sample_consensus/method_types.h>
#include <pcl/sample_consensus/model_types.h>
#include <pcl/segmentation/sac_segmentation.h>
#include <pcl/filters/extract_indices.h>
#include <pcl/segmentation/extract_clusters.h>
/* Use SACSegmentation to find the dominant plane in the scene
* Inputs:
* input
* The input point cloud
* max_iterations
* The maximum number of RANSAC iterations to run
* distance_threshold
* The inlier/outlier threshold. Points within this distance
* from the hypothesized plane are scored as inliers.
* Return: A pointer to the ModelCoefficients (i.e., the 4 coefficients of the plane,
* represented in c0*x + c1*y + c2*z + c3 = 0 form)
*/
pcl::ModelCoefficients::Ptr
fitPlane (const PointCloudPtr & input, float distance_threshold, float max_iterations)
{
pcl::ModelCoefficients::Ptr coefficients;
return (coefficients);
}
/* Use SACSegmentation and an ExtractIndices filter to find the dominant plane and subtract it
* Inputs:
* input
* The input point cloud
* max_iterations
* The maximum number of RANSAC iterations to run
* distance_threshold
* The inlier/outlier threshold. Points within this distance
* from the hypothesized plane are scored as inliers.
* Return: A pointer to a new point cloud which contains only the non-plane points
*/
PointCloudPtr
findAndSubtractPlane (const PointCloudPtr & input, float distance_threshold, float max_iterations)
{
PointCloudPtr output;
return (output);
}
/* Use EuclidieanClusterExtraction to group a cloud into contiguous clusters
* Inputs:
* input
* The input point cloud
* cluster_tolerance
* The maximum distance between neighboring points in a cluster
* min/max_cluster_size
* The minimum and maximum allowable cluster sizes
* Return (by reference): a vector of PointIndices containing the points indices in each cluster
*/
void
clusterObjects (const PointCloudPtr & input,
float cluster_tolerance, int min_cluster_size, int max_cluster_size,
std::vector<pcl::PointIndices> & cluster_indices_out)
{
}
|