Loading...
Searching...
No Matches
ClassifierEDStrategy.h
Go to the documentation of this file.
1/* Copyright (C) 2008 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/ClassifierEDStrategy.h
22 \brief Euclidean Distance Classifier strategy.
23 */
24
25#ifndef __TERRALIB_RP_INTERNAL_CLASSIFIEREDSTRATEGY_H
26#define __TERRALIB_RP_INTERNAL_CLASSIFIEREDSTRATEGY_H
27
28#include "ClassifierStrategy.h"
30#include "../common/progress/TaskProgress.h"
31#include "Config.h"
32
33#include <boost/numeric/ublas/matrix.hpp>
34#include <boost/shared_ptr.hpp>
35
36#include <map>
37#include <vector>
38
39namespace te
40{
41 namespace rp
42 {
43 /*!
44 \class ClassifierEDStrategy
45
46 \brief Euclidean Distance Classifier strategy.
47
48 \ingroup rp_class
49 */
51 {
52 public:
53
54 /*!
55 \class Parameters
56
57 \brief Classifier Parameters
58 */
60 {
61 public:
62
63 typedef unsigned int ClassIDT; //!< Class ID type definition (zero means invalid ID).
64
65 typedef std::vector< double > ClassSampleT; //!< Class sample type definition.
66
67 typedef std::vector< ClassSampleT > ClassSamplesContainerT; //!< Class samples container type definition.
68
69 typedef std::map< ClassIDT, ClassSamplesContainerT > MClassesSamplesCT; //!< Multi-classes samples container type definition.
70
71 typedef boost::shared_ptr<MClassesSamplesCT> MClassesSamplesCTPtr; //!< A shared pointer to a multi classes samples container type definition.
72
73 MClassesSamplesCTPtr m_trainSamplesPtr; //!< A shared pointer to a always-valid structure where trainning samples are stored.
74
76
78
79 //overload
80 const Parameters& operator=(const Parameters& params);
81
82 //overload
83 void reset() _NOEXCEPT_OP(false);
84
85 //overload
86 AbstractParameters* clone() const;
87 };
88
90
92
93 //overload
94 bool initialize(ClassifierStrategyParameters const* const strategyParams) _NOEXCEPT_OP(false);
95
96 //overload
97 bool execute() _NOEXCEPT_OP(false);
98
99 unsigned int getOutputNumberBands(void);
100
101 protected :
102
103 bool m_isInitialized; //!< Is this instance initialized?
104
105 Parameters::ClassIDT m_highestTrainClassID; //!< The highest train class ID.
106
107 ClassifierEDStrategy::Parameters m_initParams; //!< Initialization parameters.
108
109 std::vector< Parameters::ClassIDT > m_classesIndex2ID; //!< An class index ordered vector of classes IDs;
110
111 std::vector< std::vector< double > > m_classesMeans; //!< Classes means;
112
113 };
114
115 /*!
116 \class ClassifierEDStrategyFactory
117
118 \brief Euclidean Distance strategy factory.
119
120 \note Factory key: RegionGrowing
121 */
123 {
124 public:
125
127
129
130 //overload
132 };
133
134 } // end namespace rp
135} // end namespace te
136
137#endif // __TERRALIB_RP_INTERNAL_CLASSIFIEREDSTRATEGY_H
138
Raster classifier strategy factory base class.
Raster classifier strategy base class.
#define _NOEXCEPT_OP(x)
Euclidean Distance strategy factory.
te::rp::ClassifierStrategy * build()
Concrete factories (derived from this one) must implement this method in order to create objects.
unsigned int ClassIDT
Class ID type definition (zero means invalid ID).
std::map< ClassIDT, ClassSamplesContainerT > MClassesSamplesCT
Multi-classes samples container type definition.
std::vector< ClassSampleT > ClassSamplesContainerT
Class samples container type definition.
std::vector< double > ClassSampleT
Class sample type definition.
boost::shared_ptr< MClassesSamplesCT > MClassesSamplesCTPtr
A shared pointer to a multi classes samples container type definition.
MClassesSamplesCTPtr m_trainSamplesPtr
A shared pointer to a always-valid structure where trainning samples are stored.
void reset() _NOEXCEPT_OP(false)
Clear all internal allocated resources and reset the parameters instance to its initial state.
const Parameters & operator=(const Parameters &params)
Euclidean Distance Classifier strategy.
Raster classifier strategy factory base class.
Raster classifier strategy base class.
TerraLib.
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:139
Proxy configuration file for TerraView (see terraview_config.h).