25#ifndef __TERRALIB_RP_INTERNAL_SEGMENTER_H
26#define __TERRALIB_RP_INTERNAL_SEGMENTER_H
278 const unsigned int minExapandedBlockPixels,
279 const unsigned int maxExapandedBlockPixels,
280 unsigned int& blocksHOverlapSize,
281 unsigned int& blocksVOverlapSize,
282 unsigned int& nonExpandedBlockWidth,
283 unsigned int& nonExpandedBlockHeight,
284 unsigned int& expandedBlockWidth,
285 unsigned int& expandedBlockHeight )
const;
306 const std::vector< unsigned int >& inRasterBands,
307 const unsigned int pixelNeighborhoodSize,
308 const unsigned int tileNeighborhoodSize,
309 const unsigned int profileAntiSmoothingFactor,
310 std::vector< unsigned int>& profile )
const;
325 const std::vector< unsigned int >& inRasterBands,
326 const unsigned int pixelNeighborhoodSize,
327 const unsigned int tileNeighborhoodSize,
328 const unsigned int profileAntiSmoothingFactor,
329 std::vector< unsigned int>& profile )
const;
339 const std::vector< std::vector< unsigned int> >& imageHorizontalProfiles,
340 const std::vector< std::vector< unsigned int> >& imageVerticalProfiles,
344 const std::vector< std::vector< unsigned int> >& imageHorizontalProfiles,
345 const std::vector< unsigned int >& imageHorizontalProfilesCenterLines,
346 const std::vector< std::vector< unsigned int> >& imageVerticalProfiles,
347 const std::vector< unsigned int >& imageVerticalProfilesCenterLines,
348 const std::string& filename );
An access synchronizer to be used in SynchronizedRaster raster instances.
Raster segmenter strategy parameters base class.
Raster segmenter strategy base class.
This class can be used to inform the progress of a task.
AbstractParameters()
Constructor.
An abstract class for data providers like a DBMS, Web Services or a regular file.
Raster Processing algorithm output parameters base interface.
AlgorithmOutputParameters()
Segmenter segments IDs manager.
Segmenter segments block description class.
Segmenter Strategy Parameters.
Segmenter Output Parameters.
std::unique_ptr< te::rst::Raster > m_outputRasterPtr
A pointer the ge generated output raster (label image).
void reset()
Clear all internal allocated resources and reset the parameters instance to its initial state.
const Segmenter::OutputParameters & operator=(const Segmenter::OutputParameters ¶ms)
OutputParameters(const OutputParameters &other)
std::string m_rType
Output raster data source type (as described in te::raster::RasterFactory ).
std::map< std::string, std::string > m_rInfo
The necessary information to create the raster (as described in te::raster::RasterFactory).
AbstractParameters * clone() const
Create a clone copy of this instance.
The parameters passed to the Segmenter::segmenterthreadEntry method.
std::vector< std::complex< double > > m_inputRasterBandMaxValues
A vector of input raster bands maximum values.
boost::mutex * m_generalMutexPtr
Pointer to a general global mutex (default:0).
SegmenterIdsManager * m_segmentsIdsManagerPtr
Pointer to the segments Ids manager - (default 0).
bool volatile * m_abortSegmentationFlagPtr
Pointer to the abort segmentation flag (default:0).
te::rst::RasterSynchronizer * m_outputRasterSyncPtr
Pointer to the output raster synchronizer (default:0).
unsigned int m_maxInputRasterCachedBlocks
The maximum number of input raster cached blocks per-thread.
bool m_enableStrategyProgress
Enable/Disable the segmentation strategy to use its own progress interface (default:false).
boost::mutex * m_blockProcessedSignalMutexPtr
Pointer to the mutex used by the block processed signal (default:0).
boost::condition_variable * m_blockProcessedSignalPtr
Pointer to a signal to be emited when a segments block was processed (default:0).
~SegmenterThreadEntryParams()
te::rst::RasterSynchronizer * m_inputRasterSyncPtr
Pointer to the input raster synchronizer (default:0).
unsigned int volatile * m_runningThreadsCounterPtr
Pointer to the running threads counter - default 0).
Segmenter::InputParameters m_inputParameters
The global segmenter input execution parameters.
std::vector< std::complex< double > > m_inputRasterNoDataValues
A vector of values to be used as input raster no-data values.
std::string * m_threadErrorMessagePtr
A pointer to a string where the thread error message will be stored.
Segmenter::OutputParameters * m_outputParametersPtr
A pointer to the global segmenter input execution parameters (default:0).
SegmenterThreadEntryParams()
SegmentsBlocksMatrixT * m_segsBlocksMatrixPtr
Pointer to the segments blocks matrix (default:0).
std::vector< std::complex< double > > m_inputRasterBandMinValues
A vector of input raster bands minimum values.
bool initialize(const AlgorithmInputParameters &inputParams)
Initialize the algorithm instance making it ready for execution.
bool genImageVCutOffProfile(const unsigned int profileCenter, const te::rst::Raster &inRaster, const std::vector< unsigned int > &inRasterBands, const unsigned int pixelNeighborhoodSize, const unsigned int tileNeighborhoodSize, const unsigned int profileAntiSmoothingFactor, std::vector< unsigned int > &profile) const
Generate the vertical cutOff prifles for the entire image..
bool isInitialized() const
Returns true if the algorithm instance is initialized and ready for execution.
bool createCutOffLinesTiff(const std::vector< std::vector< unsigned int > > &imageHorizontalProfiles, const std::vector< unsigned int > &imageHorizontalProfilesCenterLines, const std::vector< std::vector< unsigned int > > &imageVerticalProfiles, const std::vector< unsigned int > &imageVerticalProfilesCenterLines, const std::string &filename)
void reset()
Clear all internal allocated objects and reset the algorithm to its initial state.
bool execute(AlgorithmOutputParameters &outputParams)
Executes the algorithm using the supplied parameters.
bool genImageHCutOffProfile(const unsigned int profileCenter, const te::rst::Raster &inRaster, const std::vector< unsigned int > &inRasterBands, const unsigned int pixelNeighborhoodSize, const unsigned int tileNeighborhoodSize, const unsigned int profileAntiSmoothingFactor, std::vector< unsigned int > &profile) const
Generate the horizontal cutOff prifles for the entire image..
static void segmenterThreadEntry(SegmenterThreadEntryParams *paramsPtr)
Segmenter thread entry.
Segmenter::InputParameters m_inputParameters
Segmenter execution parameters.
te::rp::Matrix< SegmenterSegmentsBlock > SegmentsBlocksMatrixT
bool calcBestBlockSize(const unsigned int minExapandedBlockPixels, const unsigned int maxExapandedBlockPixels, unsigned int &blocksHOverlapSize, unsigned int &blocksVOverlapSize, unsigned int &nonExpandedBlockWidth, unsigned int &nonExpandedBlockHeight, unsigned int &expandedBlockWidth, unsigned int &expandedBlockHeight) const
Calc the best sub-image block size for each thread to process.
bool updateBlockCutOffProfiles(const std::vector< std::vector< unsigned int > > &imageHorizontalProfiles, const std::vector< std::vector< unsigned int > > &imageVerticalProfiles, SegmenterSegmentsBlock &segmentsBlock) const
Update the block cutOff profiles using the full image profiles.
bool m_instanceInitialized
A raster band description.
An access synchronizer to be used in SynchronizedRaster raster instances.
An abstract class for raster data strucutures.
Namespace for the DataAccess API of TerraLib.
Namespace for Raster Processing module of TerraLib.
Namespace for the Raster module of TerraLib.
Raster Processing algorithm base interface class.
Configuration flags for the Raster Processing module of TerraLib.
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.