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