Filter.h
Go to the documentation of this file.
1 
19 #pragma once
20 #ifndef _FILTER_H
21 #define _FILTER_H
22 
23 #include <Utils.h>
24 
25 class Filter
26 {
27  typedef pcl::PointCloud<pcl::PointXYZ> PointCloudXYZ;
28  typedef pcl::PointCloud<pcl::PointXYZRGB> PointCloudRGB;
29  typedef pcl::PointCloud<pcl::Normal> PointCloudNormal;
30 
31 public:
36  Filter(){};
37 
43  Filter(double leaf_size);
44 
52  Filter(double leaf_size, double noise_threshold, double floor_threshold);
53 
58  ~Filter(){};
59 
65  void setLeafSize(double new_leaf_size);
66 
72  void setNoiseThreshold(double noise_th);
73 
79  void setFloorThreshold(double floor_th);
80 
86  void setCloudCenter(Eigen::Vector3f cloud_center);
87 
96  void run(PointCloudRGB::Ptr cloud, PointCloudRGB::Ptr cloud_filtered);
97 
104  void downsampleCloud(PointCloudRGB::Ptr cloud, PointCloudRGB::Ptr cloud_downsampled);
105 
113  void filterNoise(PointCloudRGB::Ptr cloud, PointCloudRGB::Ptr cloud_filtered);
114 
122  void filterFloor(PointCloudRGB::Ptr cloud, PointCloudRGB::Ptr cloud_filtered);
123 
130  void outlierRemove(PointCloudRGB::Ptr cloud, PointCloudRGB::Ptr cloud_filtered);
131 
140  static void removeFromCloud(PointCloudRGB::Ptr input_cloud,
141  PointCloudRGB::Ptr substract_cloud,
142  double threshold,
143  PointCloudRGB::Ptr cloud_filtered);
144 
152  static void extractIndicesNegative(PointCloudRGB::Ptr cloud_in,
153  PointCloudRGB::Ptr cloud_out,
154  pcl::IndicesPtr indices);
155 
163  static void extractIndices(PointCloudRGB::Ptr cloud_in,
164  PointCloudRGB::Ptr cloud_out,
165  pcl::IndicesPtr indices);
166 
174  static void extractIndices(PointCloudNormal::Ptr normals_in,
175  PointCloudNormal::Ptr normals_out,
176  pcl::IndicesPtr indices);
177 
178 private:
180  double leaf_size_;
181 
183  double noise_threshold_;
184 
186  Eigen::Vector4f cloud_center_;
187 
189  bool given_center_;
190 
192  double floor_threshold_;
193 };
194 
195 #endif
pcl::PointCloud< pcl::PointXYZRGB > PointCloudRGB
Definition: Filter.h:25
pcl::PointCloud< pcl::Normal > PointCloudNormal
Definition: Viewer.h:28
pcl::PointCloud< pcl::PointXYZ > PointCloudXYZ


leica_point_cloud_processing
Author(s): Ines Lara Sicilia
autogenerated on Fri Feb 5 2021 03:20:30