24 const unsigned int featuresNumber)
32 unsigned int nCols = (
unsigned int)std::floor( std::sqrt( (
double)segsNumber ) );
33 unsigned int nRows = (
unsigned int)std::ceil( ((
double)segsNumber) /
35 assert( ( nCols * nRows ) >= segsNumber );
57 for(
unsigned int row = 0 ; row < nRows ; ++row )
59 for( col = 0 ; col < nCols ; ++col )
62 m_segments[ row ][ col ].m_neighborSegments = 0;
63 m_segments[ row ][ col ].m_neighborSegmentsSize = 0;
65 m_segments[ row ][ col ].m_featuresSize = featuresNumber;
72 for(
unsigned int row = 0 ; row < nRows ; ++row )
74 for( col = 0 ; col < nCols ; ++col )
77 m_segments[ row ][ col ].m_neighborSegments = 0;
78 m_segments[ row ][ col ].m_neighborSegmentsSize = 0;
88 unsigned int nRows =
m_segments.getLinesNumber();
89 unsigned int nCols =
m_segments.getColumnsNumber();
92 for(
unsigned int row = 0 ; row < nRows ; ++row )
94 for( col = 0 ; col < nCols ; ++col )
97 m_segments[ row ][ col ].clearNeighborSegments();
131 unsigned int nRows =
m_segments.getLinesNumber();
132 unsigned int nCols =
m_segments.getColumnsNumber();
134 unsigned int col = 0;
135 for(
unsigned int row = 0 ; row < nRows ; ++row )
137 for( col = 0 ; col < nCols ; ++col )
139 if(
m_segments[ row ][ col ].m_neighborSegments )
141 free(
m_segments[ row ][ col ].m_neighborSegments );
unsigned int m_featuresNumber
The number of features for each created segment.
Matrix< SegmenterRegionGrowingSegment::FeatureType > m_segmentsFeatures
Internal stored segment features.
unsigned int m_getNextSegment_line
SegmenterSegmentsBlock::SegmentIdDataType m_segsNumber
The number of segments allocated segments.
void clear()
Clear all stored segments.
unsigned int SegmentIdDataType
SegmenterRegionGrowingSegmentsPool()
~SegmenterRegionGrowingSegmentsPool()
SegmenterRegionGrowingSegment * getNextSegment()
Retrive a stored segment.
bool initialize(const SegmenterSegmentsBlock::SegmentIdDataType segsNumber, const unsigned int featuresNumber)
Pool initialization.
void resetUseCounter()
Reset the segments use counter.
SegmenterSegmentsBlock::SegmentIdDataType getSegmentsNumber() const
Return the current allocated segments number.
A generic template matrix.
Matrix< SegmenterRegionGrowingSegment > m_segments
Internal stored segments.
unsigned int m_getNextSegment_col
SegmenterSegmentsBlock::SegmentIdDataType m_nextUnusedSegmentIdx
The next unused segment index.