Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkRegionalMaximaImageFilter_h
00018 #define __itkRegionalMaximaImageFilter_h
00019
00020 #include "itkImageToImageFilter.h"
00021 #include "itkConceptChecking.h"
00022
00023 namespace itk {
00024
00048 template<class TInputImage, class TOutputImage>
00049 class ITK_EXPORT RegionalMaximaImageFilter :
00050 public ImageToImageFilter<TInputImage, TOutputImage>
00051 {
00052 public:
00054 typedef RegionalMaximaImageFilter Self;
00055
00056 typedef ImageToImageFilter<TInputImage, TOutputImage> Superclass;
00057
00058 typedef SmartPointer<Self> Pointer;
00059 typedef SmartPointer<const Self> ConstPointer;
00060
00062 typedef TInputImage InputImageType;
00063 typedef TOutputImage OutputImageType;
00064 typedef typename InputImageType::Pointer InputImagePointer;
00065 typedef typename InputImageType::ConstPointer InputImageConstPointer;
00066 typedef typename InputImageType::RegionType InputImageRegionType;
00067 typedef typename InputImageType::PixelType InputImagePixelType;
00068 typedef typename OutputImageType::Pointer OutputImagePointer;
00069 typedef typename OutputImageType::ConstPointer OutputImageConstPointer;
00070 typedef typename OutputImageType::RegionType OutputImageRegionType;
00071 typedef typename OutputImageType::PixelType OutputImagePixelType;
00072
00074 itkStaticConstMacro(InputImageDimension, unsigned int,
00075 TInputImage::ImageDimension);
00076 itkStaticConstMacro(OutputImageDimension, unsigned int,
00077 TOutputImage::ImageDimension);
00079
00081 itkNewMacro(Self);
00082
00084 itkTypeMacro(RegionalMaximaImageFilter, ImageToImageFilter);
00085
00092 itkSetMacro(FullyConnected, bool);
00093 itkGetConstMacro(FullyConnected, bool);
00094 itkBooleanMacro(FullyConnected);
00096
00101 itkSetMacro(ForegroundValue, OutputImagePixelType);
00102 itkGetConstMacro(ForegroundValue, OutputImagePixelType);
00104
00109 itkSetMacro(BackgroundValue, OutputImagePixelType);
00110 itkGetConstMacro(BackgroundValue, OutputImagePixelType);
00112
00117 itkSetMacro(FlatIsMaxima, bool);
00118 itkGetConstMacro(FlatIsMaxima, bool);
00119 itkBooleanMacro(FlatIsMaxima);
00121
00122 #ifdef ITK_USE_CONCEPT_CHECKING
00123
00124 itkConceptMacro(InputHasPixelTraitsCheck,
00125 (Concept::HasPixelTraits<InputImagePixelType>));
00126 itkConceptMacro(InputHasNumericTraitsCheck,
00127 (Concept::HasNumericTraits<InputImagePixelType>));
00128
00130 #endif
00131
00132
00133 protected:
00134 RegionalMaximaImageFilter();
00135 ~RegionalMaximaImageFilter() {};
00136 void PrintSelf(std::ostream& os, Indent indent) const;
00137
00141 void GenerateInputRequestedRegion();
00142
00144 void EnlargeOutputRequestedRegion(DataObject *itkNotUsed(output));
00145
00148 void GenerateData();
00149
00150
00151 private:
00152 RegionalMaximaImageFilter(const Self&);
00153 void operator=(const Self&);
00154
00155 bool m_FullyConnected;
00156 bool m_FlatIsMaxima;
00157 OutputImagePixelType m_ForegroundValue;
00158 OutputImagePixelType m_BackgroundValue;
00159
00160 };
00161
00162 }
00163
00164 #ifndef ITK_MANUAL_INSTANTIATION
00165 #include "itkRegionalMaximaImageFilter.txx"
00166 #endif
00167
00168 #endif
00169