linesegment2d_detector.h
Go to the documentation of this file.
1 #ifndef LINEFILTER_H
2 #define LINEFILTER_H
3 
4 #include <memory>
6 
7 namespace tuw {
8 
9 class LineSegment2DDetectorParameter;
10 using LineSegment2DDetectorParameterPtr = std::shared_ptr< LineSegment2DDetectorParameter >;
11 using LineSegment2DDetectorParameterConstPtr = std::shared_ptr< LineSegment2DDetectorParameter const>;
16 public:
18  : threshold_split_neighbor ( true )
19  , threshold_split ( .05 )
20  , min_length ( .1 )
21  , min_points_per_line ( 20 )
22  , min_points_per_unit ( 10 ) {
23  }
26  double min_length;
29 };
30 
32 using LineSegment2DDetectorPtr = std::shared_ptr< LineSegment2DDetector >;
33 using LineSegment2DDetectorConstPtr = std::shared_ptr< LineSegment2DDetector const>;
38 public:
42  class LineSegment : public LineSegment2D {
43  public:
45  LineSegment() : LineSegment2D(), id_ ( 0 ) {};
46  void set ( unsigned int idx0, unsigned int idx1, const std::vector<Point2D> &points );
47  void updatePoints ( const std::vector<Point2D> &points );
48  bool isSupportPoint ( int idx );
49  unsigned int nrSupportPoint();
50  unsigned int id_;
51  unsigned int idx0_, idx1_;
52  std::vector<Point2D> points_;
53  };
55  void start ( const std::vector<Point2D> &points);
56  std::vector<LineSegment2D> &start ( const std::vector<Point2D> &points, std::vector<LineSegment2D> &detected_segments );
57  const std::vector<LineSegment> & result ( );
59 private:
60  void split ( LineSegment &line, const std::vector<Point2D> &points );
61  std::vector< std::pair<unsigned int, unsigned int> > connected_measurments_;
62  std::vector<LineSegment> segments_;
63 };
64 
65 };
66 #endif // LINE2DFILTER_H
tuw::LineSegment2DDetector::LineSegment::id_
unsigned int id_
Definition: linesegment2d_detector.h:50
tuw::LineSegment2DDetectorParameter::threshold_split
double threshold_split
Definition: linesegment2d_detector.h:25
tuw::LineSegment2DDetector::LineSegment::idx0_
unsigned int idx0_
Definition: linesegment2d_detector.h:51
tuw::LineSegment2DDetectorParameter::LineSegment2DDetectorParameter
LineSegment2DDetectorParameter()
Definition: linesegment2d_detector.h:17
tuw::LineSegment2DDetector::LineSegment::updatePoints
void updatePoints(const std::vector< Point2D > &points)
Definition: linesegment2d_detector.cpp:7
tuw::LineSegment2DDetector::LineSegment::nrSupportPoint
unsigned int nrSupportPoint()
Definition: linesegment2d_detector.cpp:23
tuw::LineSegment2DDetectorParameter
Definition: linesegment2d_detector.h:15
tuw::LineSegment2DDetectorParameter::min_length
double min_length
Definition: linesegment2d_detector.h:26
tuw::LineSegment2DDetector::connected_measurments_
std::vector< std::pair< unsigned int, unsigned int > > connected_measurments_
Definition: linesegment2d_detector.h:61
tuw::LineSegment2DDetectorParameter::min_points_per_unit
int min_points_per_unit
Definition: linesegment2d_detector.h:28
tuw::LineSegment2DDetector::split
void split(LineSegment &line, const std::vector< Point2D > &points)
Definition: linesegment2d_detector.cpp:80
tuw::LineSegment2DDetector::LineSegment
Definition: linesegment2d_detector.h:42
tuw::LineSegment2DDetector::config_
LineSegment2DDetectorParameter config_
Definition: linesegment2d_detector.h:58
tuw::LineSegment2DDetectorParameter::min_points_per_line
int min_points_per_line
Definition: linesegment2d_detector.h:27
tuw
Definition: command.h:8
tuw::LineSegment2DDetector::LineSegment::set
void set(unsigned int idx0, unsigned int idx1, const std::vector< Point2D > &points)
Definition: linesegment2d_detector.cpp:26
tuw::LineSegment2DDetectorParameter::threshold_split_neighbor
bool threshold_split_neighbor
Definition: linesegment2d_detector.h:24
tuw::LineSegment2DDetector::start
void start(const std::vector< Point2D > &points)
Definition: linesegment2d_detector.cpp:32
tuw::LineSegment2DDetectorConstPtr
std::shared_ptr< LineSegment2DDetector const > LineSegment2DDetectorConstPtr
Definition: linesegment2d_detector.h:33
tuw::LineSegment2DDetector::LineSegment2DDetector
LineSegment2DDetector()
Definition: linesegment2d_detector.cpp:5
tuw::LineSegment2DDetector
Definition: linesegment2d_detector.h:37
tuw::LineSegment2DDetector::result
const std::vector< LineSegment > & result()
Definition: linesegment2d_detector.cpp:113
tuw::LineSegment2DDetector::LineSegment::idx1_
unsigned int idx1_
Definition: linesegment2d_detector.h:51
tuw::LineSegment2DDetector::LineSegment::LineSegment
LineSegment()
constructor
Definition: linesegment2d_detector.h:45
linesegment2d.h
tuw::LineSegment2D
Definition: linesegment2d.h:15
tuw::LineSegment2DDetectorParameterPtr
std::shared_ptr< LineSegment2DDetectorParameter > LineSegment2DDetectorParameterPtr
Prototype.
Definition: linesegment2d_detector.h:10
tuw::LineSegment2DDetectorPtr
std::shared_ptr< LineSegment2DDetector > LineSegment2DDetectorPtr
Prototype.
Definition: linesegment2d_detector.h:32
tuw::LineSegment2DDetectorParameterConstPtr
std::shared_ptr< LineSegment2DDetectorParameter const > LineSegment2DDetectorParameterConstPtr
Definition: linesegment2d_detector.h:11
tuw::LineSegment2DDetector::LineSegment::points_
std::vector< Point2D > points_
Definition: linesegment2d_detector.h:52
tuw::LineSegment2DDetector::LineSegment::isSupportPoint
bool isSupportPoint(int idx)
Definition: linesegment2d_detector.cpp:16
tuw::LineSegment2DDetector::segments_
std::vector< LineSegment > segments_
Definition: linesegment2d_detector.h:62


tuw_geometry
Author(s): Markus Bader
autogenerated on Sun Feb 26 2023 03:25:40