25 #ifndef __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSTRATEGY_H
26 #define __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSTRATEGY_H
110 void reset() throw(
te::rp::Exception );
113 AbstractParameters* clone() const;
123 throw(
te::rp::Exception );
132 const
te::rst::Raster& inputRaster,
133 const
std::vector<
unsigned int >& inputRasterBands,
134 const
std::vector<
double >& inputRasterNoDataValues,
135 const
std::vector<
double >& inputRasterBandMinValues,
136 const
std::vector<
double >& inputRasterBandMaxValues,
137 te::rst::Raster& outputRaster,
138 const
unsigned int outputRasterBand,
139 const
bool enableProgressInterface ) throw(
te::rp::Exception );
142 double getMemUsageEstimation( const
unsigned int bandsToProcess,
143 const
unsigned int pixelsNumber ) const;
146 unsigned int getOptimalBlocksOverlapSize() const;
184 virtual void mergeFeatures(
199 virtual unsigned int getSegmentFeaturesSize()
const = 0;
209 const Merger&
operator=(
const Merger& other ) {
return other; };
220 MeanMerger(
const unsigned int featuresNumber );
240 inline unsigned int getSegmentFeaturesSize()
const {
return m_featuresNumber; };
244 unsigned int m_featuresNumber;
269 BaatzMerger(
const double& colorWeight,
const double& compactnessWeight,
270 const std::vector< double >& bandsWeights,
291 inline unsigned int getSegmentFeaturesSize()
const {
return 3 + ( 3 * m_bandsNumber ); };
377 const std::vector< unsigned int >& inputRasterBands,
378 const std::vector< double >& inputRasterNoDataValues,
379 const std::vector< double >& inputRasterBandMinValues,
380 const std::vector< double >& inputRasterBandMaxValues,
402 const unsigned int maxSegSizeThreshold,
405 const bool enablelocalMutualBestFitting,
406 const bool enableSameIterationMerges,
412 unsigned int& totalMergesNumber,
423 bool normto8bits,
const std::string& fileName );
439 const unsigned int& xStart,
const unsigned int& yStart,
440 const unsigned int& xBound,
const unsigned int& yBound,
443 unsigned int& edgeLength1,
444 unsigned int& edgeLength2 );
476 #endif // __TERRALIB_RP_INTERNAL_ALGORITHM_H
unsigned int m_getDissimilarity_touchingEdgeLength2
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_sizeSeg1D
Segmenter segments IDs manager.
Raster segmenter strategy factory base class.
SegmenterRegionGrowingSegment::FeatureType const * m_update_stdDevPtr
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_squaresSumUnion
SegmenterRegionGrowingSegment::FeatureType m_update_compactnessMin
void update(SegmenterRegionGrowingSegment *const )
Update the internal state.
SegmenterRegionGrowingSegment::FeatureType m_compactnessWeight
The weight given to the compactness component, deafult:0.5, valid range: [0,1].
SegmenterRegionGrowingSegment::FeatureType m_allSegsCompactnessGain
The gains applied to normalize the compactness value.
Baatz based Segments merger.
bool m_isInitialized
true if this instance is initialized.
Raster region growing segmenter strategy.
SegmenterRegionGrowingSegment::FeatureType m_update_compactnessMax
std::vector< SegmenterRegionGrowingSegment::FeatureType > m_bandsWeights
A vector where each bands weight are stored.
SegmenterRegionGrowingStrategy::Parameters m_parameters
Internal execution parameters.
SegmenterRegionGrowingSegment::FeatureType m_allSegsStdDevGain
The gains applied to normalize the standard deviation value.
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_dissValue
SegmentsIdsMatrixT m_segmentsIdsMatrix
A internal segments IDs matrix that can be reused on each strategy execution.
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_meanUnion
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_sizeUnionD
SegmenterRegionGrowingSegment::FeatureType m_update_smoothnessMax
bool m_enableSameIterationMerges
If enabled, a merged segment could be merged with another within the same iteration (default:false)...
unsigned int m_getDissimilarity_sumsIdx
SegmenterRegionGrowingSegment::FeatureType m_allSegsCompactnessOffset
The offsets applied to normalize the compactness value.
Raster region growing segmenter strategy factory.
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_hForm
SegmenterRegionGrowingSegment::FeatureType m_allSegsSmoothnessGain
The gains applied to normalize the smoothness value.
Segmenter Strategy Parameters.
Raster segmenter strategy factory base class.
unsigned int SegmentIdDataType
std::vector< double > m_bandsWeights
The weight given to each band, when applicable (note: the bands weights sum must always be 1) or an e...
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_hColor
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_diffValue
SegmenterRegionGrowingSegmentsPool m_segmentsPool
A pool of segments that can be reused on each strategy execution.
The mean of segments pixel values will be used - Reference: S. A. Bins, L. M. G. Fonseca, G. J. Erthal e F. M. Ii, "Satellite Imagery segmentation: a region growing approach", VIII Simposio Brasileiro de Sensoriamento Remoto, Salvador, BA, 14-19 abril 1996.
An abstract class for raster data strucutures.
SegmenterRegionGrowingSegment::FeatureType m_allSegsStdDevOffset
The offsets applied to normalize the standard deviation value.
SegmenterRegionGrowingSegment * m_update_currentActSegPtr
unsigned short int IterationCounterType
Feature type definition.
Raster segmenter strategy base class.
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.
SegmentFeaturesType m_segmentFeatures
What segment features will be used on the segmentation process (default:InvalidFeaturesType).
unsigned int m_update_band
unsigned int m_getDissimilarity_meansIdx
unsigned int m_minSegmentSize
A positive minimum segment size (pixels number - default: 100).
double m_segmentsSimilarityThreshold
Segments similarity treshold - Use lower values to merge only those segments that are more similar - ...
SegmenterRegionGrowingSegment::FeatureType * m_update_featuresPtr
Raster segmenter strategy base class.
Configuration flags for the Raster Processing module of TerraLib.
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_hSmooth
unsigned int m_bandsNumber
The number of features (bands).
SegmenterRegionGrowingSegment::FeatureType m_update_stdDevMin
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_stdDevUnion
Raster segmenter strategy parameters base class.
A generic template matrix.
SegmenterRegionGrowingSegment::FeatureType m_colorWeight
The weight given to the color component, deafult:0.5, valid range: [0,1].
Mean based Segments merger.
float FeatureType
Feature type definition.
double m_colorWeight
The weight given to the color component, deafult:0.9, valid range: [0,1].
unsigned int m_segmentsSimIncreaseSteps
The maximum number of steps to increment the similarity threshold value for the cases where no segmen...
Segmenter segments block description class.
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_sizeSeg2D
double m_compactnessWeight
The weight given to the compactness component, deafult:0.5, valid range: [0,1].
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_hCompact
SegmenterRegionGrowingSegment::FeatureType m_allSegsSmoothnessOffset
The offsets applied to normalize the smoothness value.
const Merger & operator=(const Merger &other)
bool m_enableLocalMutualBestFitting
If enabled, a merge only occurs between two segments if the minimum dissimilarity criteria is best fu...
SegmenterRegionGrowingSegment::FeatureType m_dissimilarityNormFactor
SegmenterRegionGrowingSegment::FeatureType m_getDissimilarity_sumUnion
SegmenterRegionGrowingSegment::FeatureType m_update_smoothnessMin
SegmenterRegionGrowingSegment::FeatureType m_update_stdDevMax
unsigned int m_getDissimilarity_touchingEdgeLength1