00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkMinimumMaximumImageFilter_h
00018 #define __itkMinimumMaximumImageFilter_h
00019
00020 #include "itkImageToImageFilter.h"
00021 #include "itkNumericTraits.h"
00022
00023 namespace itk
00024 {
00036 template <class TInputImage>
00037 class ITK_EXPORT MinimumMaximumImageFilter :
00038 public ImageToImageFilter< TInputImage, TInputImage>
00039 {
00040 public:
00042 itkStaticConstMacro(InputImageDimension, unsigned int,
00043 TInputImage::ImageDimension);
00044 itkStaticConstMacro(OutputImageDimension, unsigned int,
00045 TInputImage::ImageDimension);
00046
00048 typedef MinimumMaximumImageFilter Self;
00049 typedef ImageToImageFilter< TInputImage, TInputImage> Superclass;
00050 typedef SmartPointer<Self> Pointer;
00051 typedef SmartPointer<const Self> ConstPointer;
00052
00054 itkNewMacro(Self);
00055
00057 itkTypeMacro(MinimumMaximumImageFilter, ImageToImageFilter);
00058
00060 typedef TInputImage InputImageType;
00061 typedef typename InputImageType::PixelType InputPixelType;
00062
00064 itkGetMacro(Minimum,InputPixelType);
00065
00067 itkGetMacro(Maximum,InputPixelType);
00068
00069 protected:
00070 MinimumMaximumImageFilter()
00071 {
00072 m_Minimum = NumericTraits<InputPixelType>::NonpositiveMin();
00073 m_Maximum = NumericTraits<InputPixelType>::max();
00074 }
00075 virtual ~MinimumMaximumImageFilter() {}
00076 void PrintSelf(std::ostream& os, Indent indent) const;
00077
00078 void GenerateData();
00079
00080 private:
00081 MinimumMaximumImageFilter(const Self&);
00082 void operator=(const Self&);
00083
00084 InputPixelType m_Minimum;
00085 InputPixelType m_Maximum;
00086 };
00087
00088 }
00089
00090 #ifndef ITK_MANUAL_INSTANTIATION
00091 #include "itkMinimumMaximumImageFilter.txx"
00092 #endif
00093
00094 #endif