SourceXtractorPlusPlus
0.15
Please provide a description of the project.
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
SEImplementation
SEImplementation
Segmentation
BFSSegmentation.h
Go to the documentation of this file.
1
18
#ifndef _SEIMPLEMENTATION_SEGMENTATION_BFSSEGMENTATION_H_
19
#define _SEIMPLEMENTATION_SEGMENTATION_BFSSEGMENTATION_H_
20
21
#include "
SEFramework/Source/SourceFactory.h
"
22
#include "
SEFramework/Pipeline/Segmentation.h
"
23
24
namespace
SourceXtractor {
25
26
31
class
BFSSegmentation
:
public
Segmentation::Labelling
{
32
public
:
33
34
virtual
~BFSSegmentation
() =
default
;
35
36
BFSSegmentation
(
std::shared_ptr<SourceFactory>
source_factory,
int
max_delta)
37
:
m_source_factory
(source_factory),
m_max_delta
(max_delta) {
38
assert(source_factory !=
nullptr
);
39
}
40
41
void
labelImage
(
Segmentation::LabellingListener
& listener,
std::shared_ptr<const DetectionImageFrame>
frame)
override
;
42
43
private
:
44
class
VisitedMap
{
45
public
:
46
VisitedMap
(
int
width
,
int
height
) :
m_width
(width),
m_height
(height),
m_visited
(width * height, false) {}
47
48
void
markVisited
(
PixelCoordinate
pc) {
49
m_visited
[pc.
m_x
+ pc.
m_y
*
m_width
] =
true
;
50
}
51
52
bool
wasVisited
(
PixelCoordinate
pc)
const
{
53
if
(pc.
m_x
>= 0 && pc.
m_x
<
m_width
&& pc.
m_y
>= 0 && pc.
m_y
<
m_height
) {
54
return
m_visited
[pc.
m_x
+ pc.
m_y
*
m_width
];
55
}
else
{
56
return
true
;
57
}
58
}
59
60
private
:
61
int
m_width
,
m_height
;
62
std::vector<bool>
m_visited
;
63
};
64
65
struct
Tile
{
PixelCoordinate
offset
;
66
int
width
,
height
;
67
};
68
69
void
labelSource
(
PixelCoordinate
pc,
Segmentation::LabellingListener
& listener,
70
DetectionImage
& detection_image,
VisitedMap
& visited_map)
const
;
71
72
std::vector<BFSSegmentation::Tile>
getTiles
(
const
DetectionImage
& image)
const
;
73
74
75
std::shared_ptr<SourceFactory>
m_source_factory
;
76
int
m_max_delta
;
77
};
78
79
}
80
81
#endif
/* _SEIMPLEMENTATION_SEGMENTATION_BFSSEGMENTATION_H_ */
SourceXtractor::PixelCoordinate::m_y
int m_y
Definition:
PixelCoordinate.h:38
std::shared_ptr< SourceFactory >
SourceXtractor::BFSSegmentation::VisitedMap
Definition:
BFSSegmentation.h:44
SourceXtractor::BFSSegmentation::Tile
Definition:
BFSSegmentation.h:65
SourceXtractor::BFSSegmentation::m_source_factory
std::shared_ptr< SourceFactory > m_source_factory
Definition:
BFSSegmentation.h:75
SourceXtractor::BFSSegmentation::~BFSSegmentation
virtual ~BFSSegmentation()=default
SourceXtractor::BFSSegmentation
Implements a Segmentation based on the BFS algorithm.
Definition:
BFSSegmentation.h:31
SourceXtractor::Segmentation::LabellingListener
Definition:
Segmentation.h:94
SourceXtractor::BFSSegmentation::Tile::height
int height
Definition:
BFSSegmentation.h:66
SourceXtractor::BFSSegmentation::labelSource
void labelSource(PixelCoordinate pc, Segmentation::LabellingListener &listener, DetectionImage &detection_image, VisitedMap &visited_map) const
Definition:
BFSSegmentation.cpp:59
SourceXtractor::BFSSegmentation::getTiles
std::vector< BFSSegmentation::Tile > getTiles(const DetectionImage &image) const
Definition:
BFSSegmentation.cpp:109
SourceXtractor::BFSSegmentation::labelImage
void labelImage(Segmentation::LabellingListener &listener, std::shared_ptr< const DetectionImageFrame > frame) override
Definition:
BFSSegmentation.cpp:39
SourceXtractor::BFSSegmentation::Tile::width
int width
Definition:
BFSSegmentation.h:66
SourceXtractor::BFSSegmentation::BFSSegmentation
BFSSegmentation(std::shared_ptr< SourceFactory > source_factory, int max_delta)
Definition:
BFSSegmentation.h:36
SourceXtractor::BFSSegmentation::VisitedMap::m_width
int m_width
Definition:
BFSSegmentation.h:61
SourceXtractor::BFSSegmentation::VisitedMap::markVisited
void markVisited(PixelCoordinate pc)
Definition:
BFSSegmentation.h:48
SourceXtractor::BFSSegmentation::VisitedMap::m_visited
std::vector< bool > m_visited
Definition:
BFSSegmentation.h:62
SourceXtractor::PixelCoordinate
A pixel coordinate made of two integers m_x and m_y.
Definition:
PixelCoordinate.h:37
std::vector< bool >
SourceXtractor::BFSSegmentation::m_max_delta
int m_max_delta
Definition:
BFSSegmentation.h:76
ModelFitting::height
height
Definition:
CompactModelBase.icpp:19
SourceXtractor::BFSSegmentation::VisitedMap::m_height
int m_height
Definition:
BFSSegmentation.h:61
SourceXtractor::BFSSegmentation::VisitedMap::wasVisited
bool wasVisited(PixelCoordinate pc) const
Definition:
BFSSegmentation.h:52
SourceXtractor::Image
Interface representing an image.
Definition:
Image.h:43
Segmentation.h
SourceFactory.h
SourceXtractor::BFSSegmentation::VisitedMap::VisitedMap
VisitedMap(int width, int height)
Definition:
BFSSegmentation.h:46
ModelFitting::width
width
Definition:
CompactModelBase.icpp:19
SourceXtractor::BFSSegmentation::Tile::offset
PixelCoordinate offset
Definition:
BFSSegmentation.h:65
SourceXtractor::Segmentation::Labelling
Definition:
Segmentation.h:118
SourceXtractor::PixelCoordinate::m_x
int m_x
Definition:
PixelCoordinate.h:38
Generated by
1.8.5