00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __itkValuedRegionalMaximaImageFilter_h
00019 #define __itkValuedRegionalMaximaImageFilter_h
00020
00021 #include "itkValuedRegionalExtremaImageFilter.h"
00022 #include "itkNumericTraits.h"
00023 #include "itkConceptChecking.h"
00024
00025 namespace itk {
00048 template <class TInputImage, class TOutputImage>
00049 class ITK_EXPORT ValuedRegionalMaximaImageFilter :
00050 public
00051 ValuedRegionalExtremaImageFilter<TInputImage, TOutputImage,
00052 std::greater<typename TInputImage::PixelType>,
00053 std::greater<typename TOutputImage::PixelType> >
00054 {
00055 public:
00056 typedef ValuedRegionalMaximaImageFilter Self;
00057
00058 typedef ValuedRegionalExtremaImageFilter<TInputImage, TOutputImage,
00059 std::greater<typename TInputImage::PixelType>,
00060 std::greater<typename TOutputImage::PixelType> > Superclass;
00061
00062 typedef SmartPointer<Self> Pointer;
00063 typedef SmartPointer<const Self> ConstPointer;
00064
00065
00066 typedef TInputImage InputImageType;
00067 typedef typename InputImageType::PixelType InputImagePixelType;
00068
00070 itkNewMacro(Self);
00071
00072 #ifdef ITK_USE_CONCEPT_CHECKING
00073
00074 itkConceptMacro(InputPixelTypeComparable,
00075 (Concept::GreaterThanComparable<InputImagePixelType>));
00076 itkConceptMacro(InputHasPixelTraitsCheck,
00077 (Concept::HasPixelTraits<InputImagePixelType>));
00078 itkConceptMacro(InputHasNumericTraitsCheck,
00079 (Concept::HasNumericTraits<InputImagePixelType>));
00080
00082 #endif
00083
00084 protected:
00085 ValuedRegionalMaximaImageFilter()
00086 {
00087 SetMarkerValue(
00088 NumericTraits<ITK_TYPENAME TOutputImage::PixelType>::NonpositiveMin());
00089 }
00090 virtual ~ValuedRegionalMaximaImageFilter() {}
00091
00092 private:
00093 ValuedRegionalMaximaImageFilter(const Self&);
00094 void operator=(const Self&);
00095
00096 };
00097
00098 }
00099
00100 #endif
00101