38 #ifndef PCL_RECOGNITION_LINEMOD_LINE_RGBD
39 #define PCL_RECOGNITION_LINEMOD_LINE_RGBD
41 #include <pcl/recognition/linemod.h>
42 #include <pcl/recognition/color_gradient_modality.h>
43 #include <pcl/recognition/surface_normal_modality.h>
44 #include <pcl/io/tar.h>
72 template <
typename Po
intXYZT,
typename Po
intRGBT=Po
intXYZT>
81 Detection () : template_id (0), object_id (0), detection_id (0), response (0.0f), bounding_box () {}
99 : intersection_volume_threshold_ (1.0f)
101 , color_gradient_mod_ ()
102 , surface_normal_mod_ ()
105 , template_point_clouds_ ()
128 loadTemplates (
const std::string &file_name,
size_t object_id = 0);
137 setDetectionThreshold (
float threshold)
139 linemod_.setDetectionThreshold (threshold);
147 setGradientMagnitudeThreshold (
const float threshold)
149 color_gradient_mod_.setGradientMagnitudeThreshold (threshold);
160 setIntersectionVolumeThreshold (
const float threshold = 1.0f)
162 intersection_volume_threshold_ = threshold;
173 surface_normal_mod_.setInputCloud (cloud);
174 surface_normal_mod_.processInputData ();
185 color_gradient_mod_.setInputCloud (cloud);
186 color_gradient_mod_.processInputData ();
195 createAndAddTemplate (
197 const size_t object_id,
214 float min_scale = 0.6944444f,
215 float max_scale = 1.44f,
216 float scale_multiplier = 1.2f);
225 computeTransformedTemplatePoints (
const size_t detection_id,
232 inline std::vector<size_t>
233 findObjectPointIndices (
const size_t detection_id)
235 if (detection_id >= detections_.size ())
236 PCL_ERROR (
"ERROR pcl::LineRGBD::computeTransformedTemplatePoints - detection_id is out of bounds\n");
240 std::vector<size_t> vec;
251 inline std::vector<size_t>
252 alignTemplatePoints (
const size_t detection_id)
254 if (detection_id >= detections_.size ())
255 PCL_ERROR (
"ERROR pcl::LineRGBD::computeTransformedTemplatePoints - detection_id is out of bounds\n");
259 std::vector<size_t> vec;
265 refineDetectionsAlongDepth ();
269 applyProjectiveDepthICPOnDetections ();
273 removeOverlappingDetections ();
288 float intersection_volume_threshold_;
310 std::vector<typename pcl::LineRGBD<PointXYZT, PointRGBT>::Detection>
detections_;
315 #include <pcl/recognition/impl/linemod/line_rgbd.hpp>