SourceXtractorPlusPlus  0.13
Please provide a description of the project.
Lutz.h
Go to the documentation of this file.
1 
17 /*
18  * Lutz.h
19  *
20  * Created on: Jan 17, 2017
21  * Author: mschefer
22  */
23 
24 #ifndef _SEIMPLEMENTATION_SEGMENTATION_LUTZ_H_
25 #define _SEIMPLEMENTATION_SEGMENTATION_LUTZ_H_
26 
27 #include "ElementsKernel/Logging.h"
28 
34 
35 namespace SourceXtractor {
36 
37 class Lutz {
38 public:
39  class PixelGroup {
40  public:
41 
42  int start;
43  int end;
45 
46  PixelGroup() : start(-1), end(-1) {}
47 
49  pixel_list.insert(pixel_list.end(), other.pixel_list.begin(), other.pixel_list.end());
50  }
51  };
52 
53  class LutzListener {
54  public:
55  virtual void publishGroup(PixelGroup& pixel_group) = 0;
56  virtual void notifyProgress(int /*line*/, int /*total*/) {};
57  };
58 
59  Lutz() {}
60  virtual ~Lutz() = default;
61 
62  void labelImage(LutzListener& listener, const DetectionImage& image, PixelCoordinate offset = PixelCoordinate(0,0));
63 };
64 
65 class LutzList : public Lutz, public Lutz::LutzListener {
66 public:
67 
68  LutzList() {}
69  virtual ~LutzList() = default;
70 
72  return m_groups;
73  }
74 
75  void labelImage(const DetectionImage& image, PixelCoordinate offset = PixelCoordinate(0,0)) {
76  Lutz::labelImage(*this, image, offset);
77  }
78 
79 protected:
80  virtual void publishGroup(PixelGroup& pixel_group) override;
81 
82 private:
84 
85 };
86 
87 }
88 
89 
90 
91 
92 #endif /* _SEIMPLEMENTATION_SEGMENTATION_LUTZ_H_ */
SourceXtractor::Lutz::labelImage
void labelImage(LutzListener &listener, const DetectionImage &image, PixelCoordinate offset=PixelCoordinate(0, 0))
Definition: Lutz.cpp:59
SourceXtractor::PixelCoordinate
A pixel coordinate made of two integers m_x and m_y.
Definition: PixelCoordinate.h:37
SourceXtractor::Lutz::PixelGroup::PixelGroup
PixelGroup()
Definition: Lutz.h:46
SourceXtractor::Lutz::Lutz
Lutz()
Definition: Lutz.h:59
SourceXtractor::Lutz::PixelGroup::merge_pixel_list
void merge_pixel_list(PixelGroup &other)
Definition: Lutz.h:48
std::vector
STL class.
SourceXtractor::LutzList::publishGroup
virtual void publishGroup(PixelGroup &pixel_group) override
Definition: Lutz.cpp:232
SourceXtractor::LutzList::labelImage
void labelImage(const DetectionImage &image, PixelCoordinate offset=PixelCoordinate(0, 0))
Definition: Lutz.h:75
SourceXtractor::Lutz::LutzListener::notifyProgress
virtual void notifyProgress(int, int)
Definition: Lutz.h:56
SourceXtractor::LutzList::~LutzList
virtual ~LutzList()=default
SourceXtractor::Image< SeFloat >
SourceXtractor::LutzList::m_groups
std::vector< PixelGroup > m_groups
Definition: Lutz.h:83
SourceXtractor
Definition: Aperture.h:30
SourceXtractor::LutzList
Definition: Lutz.h:65
SourceFactory.h
Image.h
SourceXtractor::Lutz::LutzListener::publishGroup
virtual void publishGroup(PixelGroup &pixel_group)=0
SourceWithOnDemandProperties.h
SourceXtractor::Lutz::PixelGroup
Definition: Lutz.h:39
SourceXtractor::Lutz::PixelGroup::end
int end
Definition: Lutz.h:43
SourceXtractor::LutzList::LutzList
LutzList()
Definition: Lutz.h:68
SourceXtractor::LutzList::getGroups
const std::vector< PixelGroup > & getGroups() const
Definition: Lutz.h:71
SourceXtractor::Lutz::~Lutz
virtual ~Lutz()=default
TaskProvider.h
SourceXtractor::Lutz::LutzListener
Definition: Lutz.h:53
SourceXtractor::Lutz::PixelGroup::start
int start
Definition: Lutz.h:42
Logging.h
Segmentation.h
SourceXtractor::Lutz::PixelGroup::pixel_list
std::vector< PixelCoordinate > pixel_list
Definition: Lutz.h:44
SourceXtractor::Lutz
Implements a Segmentation based on the Lutz algorithm.
Definition: Lutz.h:37