00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkOptWhiteTopHatImageFilter_h
00018 #define __itkOptWhiteTopHatImageFilter_h
00019
00020 #include "itkKernelImageFilter.h"
00021
00022 namespace itk {
00023
00035 template<class TInputImage, class TOutputImage, class TKernel>
00036 class ITK_EXPORT WhiteTopHatImageFilter :
00037 public KernelImageFilter<TInputImage, TOutputImage, TKernel>
00038 {
00039 public:
00041 typedef WhiteTopHatImageFilter Self;
00042 typedef KernelImageFilter<TInputImage, TOutputImage, TKernel> Superclass;
00043 typedef SmartPointer<Self> Pointer;
00044 typedef SmartPointer<const Self> ConstPointer;
00045
00047 typedef TInputImage InputImageType;
00048 typedef TOutputImage OutputImageType;
00049 typedef typename InputImageType::Pointer InputImagePointer;
00050 typedef typename InputImageType::ConstPointer InputImageConstPointer;
00051 typedef typename InputImageType::RegionType InputImageRegionType;
00052 typedef typename InputImageType::PixelType InputImagePixelType;
00053 typedef typename OutputImageType::Pointer OutputImagePointer;
00054 typedef typename OutputImageType::ConstPointer OutputImageConstPointer;
00055 typedef typename OutputImageType::RegionType OutputImageRegionType;
00056 typedef typename OutputImageType::PixelType OutputImagePixelType;
00057
00059 typedef TKernel KernelType;
00060
00062 itkStaticConstMacro(InputImageDimension, unsigned int,
00063 TInputImage::ImageDimension);
00064 itkStaticConstMacro(OutputImageDimension, unsigned int,
00065 TOutputImage::ImageDimension);
00067
00069 itkNewMacro(Self);
00070
00072 itkTypeMacro(WhiteTopHatImageFilter,
00073 KernelImageFilter);
00074
00077 itkSetMacro(SafeBorder, bool);
00078 itkGetConstReferenceMacro(SafeBorder, bool);
00079 itkBooleanMacro(SafeBorder);
00081
00083 enum {
00084 BASIC = 0,
00085 HISTO = 1,
00086 ANCHOR = 2,
00087 VHGW = 3
00088 } AlgorithmChoice;
00089
00091 itkSetMacro(Algorithm, int);
00092 itkGetMacro(Algorithm, int);
00094
00095 itkSetMacro(ForceAlgorithm, bool);
00096 itkGetConstReferenceMacro(ForceAlgorithm, bool);
00097 itkBooleanMacro(ForceAlgorithm);
00098
00099 protected:
00100 WhiteTopHatImageFilter();
00101 ~WhiteTopHatImageFilter() {};
00102 void PrintSelf(std::ostream& os, Indent indent) const;
00103
00104 void GenerateData();
00105
00106
00107 private:
00108 WhiteTopHatImageFilter(const Self&);
00109 void operator=(const Self&);
00110
00111 bool m_SafeBorder;
00112
00113 int m_Algorithm;
00114
00115 bool m_ForceAlgorithm;
00116
00117 };
00118
00119 }
00120
00121 #ifndef ITK_MANUAL_INSTANTIATION
00122 #include "itkOptWhiteTopHatImageFilter.txx"
00123 #endif
00124
00125 #endif
00126