25#ifndef __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSEGMENT_H 
   26#define __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSEGMENT_H 
   40    template< 
typename FeatureDataTypeT >
 
  153    template< 
typename FeatureDataTypeT > 
 
  154    SegmenterRegionGrowingSegment< FeatureDataTypeT >&
 
  167      free( m_neighborSegments );
 
  180        m_neighborSegments = 0;
 
  181        m_neighborSegmentsSize = 0;
 
  194    template< 
typename FeatureDataTypeT >
 
  200        unsigned int idx = 0;
 
  202        for( idx = 0 ; idx < m_neighborSegmentsSize ; ++idx )
 
  204          if( m_neighborSegments[ idx ] == nSegPtr )
 
  210        for( idx = 0 ; idx < m_neighborSegmentsSize ; ++idx )
 
  212          if( m_neighborSegments[ idx ] == 0 )
 
  214            m_neighborSegments[ idx ] = nSegPtr;
 
  220          m_neighborSegments, ( m_neighborSegmentsSize + 1 ) * 
sizeof( 
 
  223        m_neighborSegments[ m_neighborSegmentsSize ] = nSegPtr;
 
  225        m_neighborSegmentsSize = m_neighborSegmentsSize + 1;
 
  229    template< 
typename FeatureDataTypeT >
 
  233      unsigned int numberOfZeroes = 0;
 
  234      unsigned int idx = 0;
 
  235      for( ; idx < m_neighborSegmentsSize ; ++idx )
 
  237        if( m_neighborSegments[ idx ] == nSegPtr )
 
  239          m_neighborSegments[ idx ] = 0;
 
  242        else if( m_neighborSegments[ idx ] == 0 )
 
  248      unsigned int numberOfNonZeroes = m_neighborSegmentsSize - numberOfZeroes;
 
  250      if( ( m_neighborSegmentsSize > 4 ) && ( numberOfNonZeroes < numberOfZeroes ) )
 
  255        unsigned int idx2 = 0;  
 
  257        for( idx = 0 ; idx < m_neighborSegmentsSize ; ++idx )
 
  259          if( m_neighborSegments[ idx ] )
 
  261            auxVecPtr[ idx2++ ] = m_neighborSegments[ idx ];
 
  265        free( m_neighborSegments );
 
  266        m_neighborSegments = auxVecPtr;
 
  267        m_neighborSegmentsSize = numberOfNonZeroes;
 
  271    template< 
typename FeatureDataTypeT >
 
  274      free( m_neighborSegments );
 
  275      m_neighborSegments = 0;
 
  276      m_neighborSegmentsSize = 0;
 
unsigned int SegmentIdDataType
 
bool isEnabled() const
Returns true if this segment is enabled.
 
void removeAllNeighborSegmentsPtrs()
Remove all neighbor segments.
 
SegmenterRegionGrowingSegment< FeatureDataTypeT > * m_prevActiveSegment
A pointer to the previous active segment.
 
void addNeighborSegmentPtr(SegmenterRegionGrowingSegment< FeatureDataTypeT > *const nSegPtr)
Add a pointer of a neighbor segment (if it is not already there).
 
unsigned int m_neighborSegmentsSize
The current size of m_neighborSegments.
 
void removeNeighborSegmentPtr(SegmenterRegionGrowingSegment< FeatureDataTypeT > *const nSegPtr)
Remove all occurrences of a neighbor segment.
 
SegmenterRegionGrowingSegment< FeatureDataTypeT > * m_nextActiveSegment
A pointer to the next active segment.
 
unsigned int m_xBound
Segment lower bound X coordinate box over the label image.
 
void disable()
Disable this segment ( same as m_mergetIteration = std::numeric_limits< SegmenterRegionGrowingSegment...
 
unsigned int m_featuresSize
The current size of m_features.
 
unsigned int m_yBound
Segment lower bound Y coordinate box over the label image.
 
SegmenterRegionGrowingSegment< FeatureDataTypeT > & operator=(const SegmenterRegionGrowingSegment< FeatureDataTypeT > &other)
 
unsigned int m_xStart
Segment left X coordinate box over the label image.
 
unsigned short int IterationCounterType
Feature type definition.
 
FeatureType * m_features
A pionter to a fixed size vector of segment features.
 
FeatureDataTypeT FeatureType
Feature type definition.
 
unsigned int m_yStart
Segment upper Y coordinate box over the label image.
 
unsigned int m_size
Segment area (pixels number).
 
IterationCounterType m_mergetIteration
The current merge iteration.
 
SegmenterRegionGrowingSegment< FeatureDataTypeT > ** m_neighborSegments
Neighborhood segments pointers (some pointers can be null) or a null pointer if there is no neighborh...
 
SegmenterSegmentsBlock::SegmentIdDataType m_id
Segment ID.
 
Proxy configuration file for TerraView (see terraview_config.h).