17 #ifndef __itkMovingHistogramMorphologyImageFilter_h
18 #define __itkMovingHistogramMorphologyImageFilter_h
27 template <
class TInputPixel,
class TCompare>
86 inline TInputPixel
GetValue(
const TInputPixel & )
99 return typeid(TInputPixel) ==
typeid(
unsigned char)
100 ||
typeid(TInputPixel) ==
typeid(
signed char)
101 ||
typeid(TInputPixel) ==
typeid(
unsigned short)
102 ||
typeid(TInputPixel) ==
typeid(
signed short)
103 ||
typeid(TInputPixel) ==
typeid(
bool);
112 typedef typename std::map< TInputPixel, unsigned long, TCompare >
MapType;
129 typename MapType::iterator mapIt =
m_Map.begin();
130 while( mapIt !=
m_Map.end() )
132 if( mapIt->second == 0 )
137 TInputPixel toErase = mapIt->first;
139 m_Map.erase( toErase );
151 return m_Map.begin()->first;
164 m_Vector.resize( static_cast<int>( NumericTraits< TInputPixel >::max() - NumericTraits< TInputPixel >::NonpositiveMin() + 1 ), 0 );
165 if(
m_Compare( NumericTraits< TInputPixel >::max(), NumericTraits< TInputPixel >::NonpositiveMin() ) )
186 m_Vector[
static_cast<int>( p - NumericTraits< TInputPixel >::NonpositiveMin() ) ]++;
193 m_Vector[
static_cast<int>( p - NumericTraits< TInputPixel >::NonpositiveMin() ) ]--;
194 while(
m_Vector[ static_cast<int>(
m_CurrentValue - NumericTraits< TInputPixel >::NonpositiveMin() ) ] == 0 )
228 template<
class TInputImage,
class TOutputImage,
class TKernel,
class THistogram>
259 itkStaticConstMacro(ImageDimension,
unsigned int,
260 TInputImage::ImageDimension);
273 typedef typename std::map< OffsetType, OffsetListType, typename OffsetType::LexicographicCompare >
OffsetMapType;
281 static bool GetUseVectorBasedAlgorithm()
282 {
return THistogram::UseVectorBasedAlgorithm(); }
287 void PrintSelf(std::ostream& os,
Indent indent)
const;
295 virtual THistogram * NewHistogram();
301 void operator=(
const Self&);
307 #ifndef ITK_MANUAL_INSTANTIATION