26 #ifndef __TERRALIB_CLASSIFICATION_INTERNAL_ISODATA_H 27 #define __TERRALIB_CLASSIFICATION_INTERNAL_ISODATA_H 30 #include "../common/AbstractParameters.h" 31 #include "../common/MatrixUtils.h" 32 #include "../common/progress/TaskProgress.h" 81 AbstractParameters* clone()
const;
130 const std::vector<unsigned int>& attributesIndices,
131 const std::vector< double >& inputNoDataValues,
133 const unsigned int outputIndex,
135 const bool enableProgressInterface,
136 std::vector< ClusterData >* clustersDataPtr );
143 typedef std::map< ClusterData::ClusterLabelT, ISOData::ClusterData >
164 const std::vector<unsigned int>& attributesIndices,
167 const std::vector<double>& inputNoDataValues,
168 std::vector< std::pair< double, double > >& inputElementsOffsetsAndGains )
const;
184 const std::vector<unsigned int>& attributesIndices,
185 const std::vector<double>& inputNoDataValues,
188 const unsigned int outputIndex,
189 const unsigned int outputNoDataValue,
190 const std::vector< std::pair< double, double > >& inputElementsOffsetsAndGains )
const;
198 bool removeSmallClusters(
199 const unsigned int inputElelementsCount,
214 bool updateClustersStats(
216 const std::vector<unsigned int>& attributesIndices,
217 const std::vector<double>& inputNoDataValues,
220 const unsigned int outputIndex,
221 const std::vector< std::pair< double, double > >& inputElementsOffsetsAndGains )
const;
233 const unsigned int inputElementsCount,
234 const unsigned int maxNumberOfSplits,
246 static bool mergeClusters(
247 const double mergeDistThreshold,
248 const unsigned int maxNumberOfMerges,
263 #endif // __TERRALIB_CLASSIFICATION_INTERNAL_ISODATA_H unsigned int m_clustersNumber
Desired number of clusters (This is a mean number. Final clusters number can go from 0 up to k+(k/2)...
unsigned int m_maxSplitsPerIteration
Maximum number of clusters splits per iteration (zero=automatic, defaul:1 ).
unsigned int ClusterLabelT
bool m_isInitialized
True if this instance is initialized.
Parameters m_parameters
Internal execution parameters.
std::map< ClusterData::ClusterLabelT, ISOData::ClusterData > ClustersContainerT
double m_stdDevSplitThreshold
A standart deviation threshold to split clusters (lower values tend to create more clusters by splitt...
unsigned int m_maxMergesPerIteration
Maximum number of clusters merges per iteration (zero=automatic, defaul:1 ).
Configuration flags for the Terrralib Classification module.
std::vector< double > m_sums
Sums of all cluster pixel values(one sum for each cluster feature dimention).
std::vector< double > m_means
Cluster means (one for each cluster feature dimention).
ClusterLabelT m_label
Cluster label.
Abstract parameters base interface.
#define TECLEXPORT
You can use this macro in order to export/import classes and functions from this module.
double m_mergeDistThreshold
A distance treshold to control the merge process (higher values will allow to merge more clusters...
std::vector< double > m_stdDevs
Cluster standart deviations (one for each cluster feature dimention).
An exception class for the Classification module.
unsigned int m_maxIterationsNumber
Maximum number of iterations (minimum:1, default:0=automatic).
double m_avgDistToClusterCenter
Average distance from all samples to the cluster center.
unsigned int m_size
Cluster size (elements number).
double m_minClusterSizePercent
Minimum cluster size (percentual proportion related to the total input elments size. Valid values: from zero up to 100, default:0).
ISOData strategy for an unsupervised pixel-based classification algorithm.