All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SegmenterRegionGrowingSegment.h
Go to the documentation of this file.
1 /* Copyright (C) 2001-2009 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/rp/SegmenterRegionGrowingSegment.h
22  \brief Region Growing segment.
23  */
24 
25 #ifndef __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSEGMENT_H
26 #define __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSEGMENT_H
27 
28  #include "Config.h"
29  #include "SegmenterSegmentsBlock.h"
30 
31  namespace te
32  {
33  namespace rp
34  {
35  /*!
36  \brief Region Growing segment.
37  */
39  {
40  /*!
41  \brief Feature type definition.
42  */
43  typedef float FeatureType;
44 
45  /*!
46  \brief Segment ID.
47  */
49 
50  /*!
51  \brief Segment status (active=true).
52  */
53  bool m_status;
54 
55  /*!
56  \brief Segment area (pixels number).
57  */
58  unsigned int m_size;
59 
60  /*!
61  \brief Segment left X coordinate box over the label image.
62  */
63  unsigned int m_xStart;
64 
65  /*!
66  \brief Segment lower bound X coordinate box over the label image.
67  */
68  unsigned int m_xBound;
69 
70  /*!
71  \brief Segment upper Y coordinate box over the label image.
72  */
73  unsigned int m_yStart;
74 
75  /*!
76  \brief Segment lower bound Y coordinate box over the label image.
77  */
78  unsigned int m_yBound;
79 
80  /*!
81  \brief Neighborhood segments pointers (some pointers can be null) or a null pointer if there is no neighborhood.
82  \note The segments pool will delete the vector pointed by this pointer at this segment deletion time.
83  */
85 
86  /*!
87  \brief The current size of m_neighborSegments.
88  */
89  unsigned int m_neighborSegmentsSize;
90 
91  /*!
92  \brief A pionter to a fixed size vector of segment features.
93  \note The segments pool have the ownership of this vector.
94  */
96 
97  /*!
98  \brief The current size of m_features.
99  */
100  unsigned int m_featuresSize;
101 
102  //overload
104 
105  /*!
106  \brief Add a pointer of a neighbor segment (if it is not already there).
107  */
108  void addNeighborSegment( SegmenterRegionGrowingSegment * const nSegPtr );
109 
110  /*!
111  \brief Remove all occurrences of a neighbor segment.
112  */
113  void removeNeighborSegment( SegmenterRegionGrowingSegment * const nSegPtr );
114 
115  /*!
116  \brief Remove all neighbor segments.
117  */
118  void clearNeighborSegments();
119  };
120  } // namespace rp
121  } // namespace te
122 
123 #endif
unsigned int m_neighborSegmentsSize
The current size of m_neighborSegments.
unsigned int m_yBound
Segment lower bound Y coordinate box over the label image.
unsigned int m_xStart
Segment left X coordinate box over the label image.
unsigned int m_xBound
Segment lower bound X coordinate box over the label image.
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:111
FeatureType * m_features
A pionter to a fixed size vector of segment features.
SegmenterRegionGrowingSegment ** m_neighborSegments
Neighborhood segments pointers (some pointers can be null) or a null pointer if there is no neighborh...
unsigned int m_size
Segment area (pixels number).
unsigned int m_featuresSize
The current size of m_features.
Configuration flags for the Raster Processing module of TerraLib.
unsigned int m_yStart
Segment upper Y coordinate box over the label image.
Segments block.
bool m_status
Segment status (active=true).
SegmenterSegmentsBlock::SegmentIdDataType m_id
Segment ID.