00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkOptMedianImageFilter_h
00018 #define __itkOptMedianImageFilter_h
00019
00020 #include "itkBoxImageFilter.h"
00021 #include "itkImage.h"
00022
00023 namespace itk
00024 {
00044 template <class TInputImage, class TOutputImage>
00045 class ITK_EXPORT MedianImageFilter :
00046 public BoxImageFilter< TInputImage, TOutputImage >
00047 {
00048 public:
00050 itkStaticConstMacro(InputImageDimension, unsigned int,
00051 TInputImage::ImageDimension);
00052 itkStaticConstMacro(OutputImageDimension, unsigned int,
00053 TOutputImage::ImageDimension);
00055
00057 typedef TInputImage InputImageType;
00058 typedef TOutputImage OutputImageType;
00059
00061 typedef MedianImageFilter Self;
00062 typedef ImageToImageFilter< InputImageType, OutputImageType> Superclass;
00063 typedef SmartPointer<Self> Pointer;
00064 typedef SmartPointer<const Self> ConstPointer;
00065
00067 itkNewMacro(Self);
00068
00070 itkTypeMacro(MedianImageFilter, BoxImageFilter);
00071
00073 typedef typename InputImageType::PixelType InputPixelType;
00074 typedef typename OutputImageType::PixelType OutputPixelType;
00075
00076 typedef typename InputImageType::RegionType InputImageRegionType;
00077 typedef typename OutputImageType::RegionType OutputImageRegionType;
00078
00079 typedef typename InputImageType::SizeType InputSizeType;
00080
00081 #ifdef ITK_USE_CONCEPT_CHECKING
00082
00083 itkConceptMacro(SameDimensionCheck,
00084 (Concept::SameDimension<InputImageDimension, OutputImageDimension>));
00085 itkConceptMacro(InputConvertibleToOutputCheck,
00086 (Concept::Convertible<InputPixelType, OutputPixelType>));
00087 itkConceptMacro(InputLessThanComparableCheck,
00088 (Concept::LessThanComparable<InputPixelType>));
00089
00091 #endif
00092
00093 protected:
00094 MedianImageFilter();
00095 virtual ~MedianImageFilter() {}
00096
00107 void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread,
00108 int threadId );
00109
00110 private:
00111 MedianImageFilter(const Self&);
00112 void operator=(const Self&);
00113 };
00114
00115 }
00116
00117 #ifndef ITK_MANUAL_INSTANTIATION
00118 #include "itkOptMedianImageFilter.txx"
00119 #endif
00120
00121 #endif
00122