te::rp::rg Namespace Reference

Typedefs

typedef float BaatzFeatureType
 Baatz Strategy feature type. More...
 
typedef unsigned short int IterationCounterType
 Iteration counter type. More...
 
typedef float MeanFeatureType
 Mean Strategy feature type. More...
 
typedef Matrix< SegmenterSegmentsBlock::SegmentIdDataTypeSegmentsIdsMatrixT
 Definition for segments ids matrix type. More...
 

Functions

void exportSegs2Tif (const SegmentsIdsMatrixT &segmentsIds, bool normto8bits, const std::string &fileName)
 Export the segments IDs to a tif file. More...
 
template<typename FeatureDataTypeT >
void findMinDissimilaryNeighbor (SegmenterRegionGrowingSegment< FeatureDataTypeT > const *const segPtr, const SegmenterRegionGrowingMerger< FeatureDataTypeT > &merger, SegmenterRegionGrowingMergeData *const auxMergeDataPtr1, SegmenterRegionGrowingMergeData *const auxMergeDataPtr2, SegmenterRegionGrowingSegment< FeatureDataTypeT > **minDissimilarityNeighborPtr, DissimilarityTypeT &minDissimilarityValue, SegmenterRegionGrowingMergeData **minDissimilarityMergeDataPtr)
 Locatie the minimim dissimilarity neighbor segment. More...
 
template<typename FeatureDataTypeT >
unsigned long int getActiveSegmentsNumber (SegmenterRegionGrowingSegment< FeatureDataTypeT > *const actSegsListHeadPtr)
 Returns the number of active segments. More...
 
template<typename FeatureDataTypeT >
void merge2Segments (SegmenterRegionGrowingSegment< FeatureDataTypeT > *segPtr1, SegmenterRegionGrowingSegment< FeatureDataTypeT > *segPtr2, SegmenterRegionGrowingMergeData const *const mergeDataPtr, SegmentsIdsMatrixT &segmentsIds, SegmenterRegionGrowingMerger< FeatureDataTypeT > &merger, SegmenterRegionGrowingSegment< FeatureDataTypeT > **actSegsListHeadPtrPtr)
 Merge segment 2 into segment 1. More...
 
template<typename FeatureDataTypeT >
bool mergeSegments (const DissimilarityTypeT maxDisimilarityThreshold, const bool enablelocalMutualBestFitting, SegmentsIdsMatrixT &segmentsIds, SegmenterIdsManager &segmenterIdsManager, SegmenterRegionGrowingMerger< FeatureDataTypeT > &merger, IterationCounterType &globalMergeIterationsCounter, const double sameItMergesThreshold, const unsigned int segmentsSimIncreaseSteps, SegmenterRegionGrowingSegment< FeatureDataTypeT > **actSegsListHeadPtrPtr, te::common::TaskProgress *taskProgressPtr)
 Merge segments following a maximum dissimilarity thresold. More...
 
template<typename FeatureDataTypeT >
void mergeTooSmallSegments (const unsigned int maximumSegmentSize, SegmentsIdsMatrixT &segmentsIds, SegmenterIdsManager &segmenterIdsManager, SegmenterRegionGrowingMerger< FeatureDataTypeT > &merger, IterationCounterType &globalMergeIterationsCounter, SegmenterRegionGrowingSegment< FeatureDataTypeT > **actSegsListHeadPtrPtr)
 Merge too small segments to its closer neighbor. More...
 

Typedef Documentation

◆ BaatzFeatureType

Baatz Strategy feature type.

Definition at line 62 of file SegmenterRegionGrowingFunctions.h.

◆ IterationCounterType

typedef unsigned short int te::rp::rg::IterationCounterType

Iteration counter type.

Definition at line 52 of file SegmenterRegionGrowingFunctions.h.

◆ MeanFeatureType

Mean Strategy feature type.

Definition at line 57 of file SegmenterRegionGrowingFunctions.h.

◆ SegmentsIdsMatrixT

Definition for segments ids matrix type.

Definition at line 47 of file SegmenterRegionGrowingFunctions.h.

Function Documentation

◆ exportSegs2Tif()

void te::rp::rg::exportSegs2Tif ( const SegmentsIdsMatrixT segmentsIds,
bool  normto8bits,
const std::string &  fileName 
)

Export the segments IDs to a tif file.

Parameters
segmentsIdsThe output segment ids container.
normto8bitsIf true, a 8 bits file will be generated.
fileNameThe output tif file name.

◆ findMinDissimilaryNeighbor()

template<typename FeatureDataTypeT >
void te::rp::rg::findMinDissimilaryNeighbor ( SegmenterRegionGrowingSegment< FeatureDataTypeT > const *const  segPtr,
const SegmenterRegionGrowingMerger< FeatureDataTypeT > &  merger,
SegmenterRegionGrowingMergeData *const  auxMergeDataPtr1,
SegmenterRegionGrowingMergeData *const  auxMergeDataPtr2,
SegmenterRegionGrowingSegment< FeatureDataTypeT > **  minDissimilarityNeighborPtr,
DissimilarityTypeT minDissimilarityValue,
SegmenterRegionGrowingMergeData **  minDissimilarityMergeDataPtr 
)

Locatie the minimim dissimilarity neighbor segment.

Parameters
segPtrTarget segment pointer
mergerMerger instance refecence.
minDissimilarityNeighborPtrFound neighbor semgnet pointer or null pointer if not found.
minDissimilarityValueThe found dissimilarity value.
auxMergeDataPtr1A pointer to a valid input merge data object.
auxMergeDataPtr2A pointer to a second valid input merge data object.
minDissimilarityMergeDataPtrThis pointer will be set to point to one of the given auxiliary merge data updated with the current minimum forward segment parameters.

Definition at line 104 of file SegmenterRegionGrowingFunctions.h.

References te::rp::SegmenterRegionGrowingMerger< FeatureDataTypeT >::getDissimilarity(), te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_neighborSegments, and te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_neighborSegmentsSize.

Referenced by mergeSegments(), and mergeTooSmallSegments().

◆ getActiveSegmentsNumber()

template<typename FeatureDataTypeT >
unsigned long int te::rp::rg::getActiveSegmentsNumber ( SegmenterRegionGrowingSegment< FeatureDataTypeT > *const  actSegsListHeadPtr)

Returns the number of active segments.

Parameters
actSegsListHeadPtrA pointer the the active segments list head.
Returns
Returns the number of active segments.

Definition at line 79 of file SegmenterRegionGrowingFunctions.h.

References te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_nextActiveSegment.

◆ merge2Segments()

template<typename FeatureDataTypeT >
void te::rp::rg::merge2Segments ( SegmenterRegionGrowingSegment< FeatureDataTypeT > *  segPtr1,
SegmenterRegionGrowingSegment< FeatureDataTypeT > *  segPtr2,
SegmenterRegionGrowingMergeData const *const  mergeDataPtr,
SegmentsIdsMatrixT segmentsIds,
SegmenterRegionGrowingMerger< FeatureDataTypeT > &  merger,
SegmenterRegionGrowingSegment< FeatureDataTypeT > **  actSegsListHeadPtrPtr 
)

Merge segment 2 into segment 1.

Parameters
segmentsIdsSegments ids container.
mergerThe merger instance to use.
actSegsListHeadPtrA pointer the the active segments list head.
minMergesIterationThresholdStop itarating when the number of merges drops below this value (Range 0-100);
Note
Segment 1 merge iteration will not be updated
Segment 2 will be disabled at the end of merge process and all its neighbors pointers deleted.

Definition at line 166 of file SegmenterRegionGrowingFunctions.h.

References te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::addNeighborSegmentPtr(), te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::disable(), te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_id, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_neighborSegments, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_neighborSegmentsSize, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_nextActiveSegment, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_prevActiveSegment, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_size, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_xBound, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_xStart, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_yBound, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_yStart, te::rp::SegmenterRegionGrowingMerger< FeatureDataTypeT >::mergeFeatures(), te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::removeAllNeighborSegmentsPtrs(), and te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::removeNeighborSegmentPtr().

Referenced by mergeSegments(), and mergeTooSmallSegments().

◆ mergeSegments()

template<typename FeatureDataTypeT >
bool te::rp::rg::mergeSegments ( const DissimilarityTypeT  maxDisimilarityThreshold,
const bool  enablelocalMutualBestFitting,
SegmentsIdsMatrixT segmentsIds,
SegmenterIdsManager segmenterIdsManager,
SegmenterRegionGrowingMerger< FeatureDataTypeT > &  merger,
IterationCounterType globalMergeIterationsCounter,
const double  sameItMergesThreshold,
const unsigned int  segmentsSimIncreaseSteps,
SegmenterRegionGrowingSegment< FeatureDataTypeT > **  actSegsListHeadPtrPtr,
te::common::TaskProgress taskProgressPtr 
)

Merge segments following a maximum dissimilarity thresold.

Parameters
disimilarityThresholdMaximum dissimilarity threshold.
enablelocalMutualBestFittingEnable/disable the use of mutual best fitting (two segments will be merged only if both have the mininum neighbor dissimilarity to each other).
segmentsIdsSegments ids container.
segmenterIdsManagerA segments ids manager to acquire unique segments ids.
mergerThe merger instance to use.
globalMergeIterationsCounterA reference to a iteration number counter (this variable will be only incremented, never zeroed. It never must be reset. ).
sameItMergesThresholdMin percentual difference from one iteration to the next (in terms of merges number) to execute one iteration where multiple merges are allowed for the same segment or to increase the Similarity Threshold(valid ranged: 0 -> 100).
segmentsSimIncreaseStepsThe maximum number of steps to increment the disimilarity threshold value for the cases where no segment merge occurred - zero will disable segment similarity threshold increments.
actSegsListHeadPtrPtrA pointer the the active segments list head.
taskProgressPtrA pointer to a progress interface to check for user cancel or a null pointer (no pulse performed).
Returns
true if OK, false on errors

Definition at line 418 of file SegmenterRegionGrowingFunctions.h.

References te::rp::SegmenterRegionGrowingMerger< FeatureDataTypeT >::createMergeData(), findMinDissimilaryNeighbor(), te::common::TaskProgress::isActive(), te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_mergetIteration, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_nextActiveSegment, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_size, merge2Segments(), TERP_TRUE_OR_THROW, and te::rp::SegmenterRegionGrowingMerger< FeatureDataTypeT >::update().

◆ mergeTooSmallSegments()

template<typename FeatureDataTypeT >
void te::rp::rg::mergeTooSmallSegments ( const unsigned int  maximumSegmentSize,
SegmentsIdsMatrixT segmentsIds,
SegmenterIdsManager segmenterIdsManager,
SegmenterRegionGrowingMerger< FeatureDataTypeT > &  merger,
IterationCounterType globalMergeIterationsCounter,
SegmenterRegionGrowingSegment< FeatureDataTypeT > **  actSegsListHeadPtrPtr 
)

Merge too small segments to its closer neighbor.

Parameters
maximumSegmentSizeOnly merge segments with sizes smaller than this value.
segmentsIdsSegments ids container.
segmenterIdsManagerA segments ids manager to acquire unique segments ids.
mergerThe merger instance to use.
globalMergeIterationsCounterA reference to a iteration number counter (this variable will be only incremented, never zeroed. It never must be reset. ).
actSegsListHeadPtrA pointer the the active segments list head.

Definition at line 306 of file SegmenterRegionGrowingFunctions.h.

References te::rp::SegmenterRegionGrowingMerger< FeatureDataTypeT >::createMergeData(), findMinDissimilaryNeighbor(), te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_mergetIteration, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_nextActiveSegment, te::rp::SegmenterRegionGrowingSegment< FeatureDataTypeT >::m_size, merge2Segments(), TERP_TRUE_OR_THROW, and te::rp::SegmenterRegionGrowingMerger< FeatureDataTypeT >::update().