00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkPlaheImageFilter_h
00018 #define __itkPlaheImageFilter_h
00019
00020
00021 #include <itkImageToImageFilter.h>
00022 #include <itkImage.h>
00023
00024 namespace itk
00025 {
00035 template <class TImageType>
00036 class ITK_EXPORT PlaheImageFilter :
00037 public ImageToImageFilter< TImageType, TImageType >
00038 {
00039 public:
00041 typedef PlaheImageFilter Self;
00042 typedef ImageToImageFilter< TImageType, TImageType > Superclass;
00043 typedef SmartPointer<Self> Pointer;
00044 typedef SmartPointer<const Self> constPointer;
00045
00046 itkStaticConstMacro(ImageDimension, unsigned int,
00047 TImageType::ImageDimension );
00048
00050 itkNewMacro(Self);
00051
00053 itkTypeMacro(PlaheImageFilter, ImageToImageFilter);
00054
00056 typedef TImageType ImageType;
00057
00059 itkSetMacro(Alpha, float);
00060 itkGetMacro(Alpha, float);
00061 itkSetMacro(Beta, float);
00062 itkGetMacro(Beta, float);
00063 itkSetVectorMacro(Window, unsigned int, ImageDimension);
00064 itkGetVectorMacro(Window, const unsigned int, ImageDimension);
00065
00066 protected:
00067 PlaheImageFilter()
00068 {
00069 m_Alpha = .3;
00070 m_Beta = .3;
00071 for (unsigned int i = 0; i <ImageDimension; i++)
00072 {
00073 m_Window[i] = 0;
00074 }
00075 }
00076 virtual ~PlaheImageFilter(){}
00077 void PrintSelf(std::ostream& os, Indent indent) const;
00078
00080 void GenerateData();
00081
00082 private:
00083 PlaheImageFilter(const Self&);
00084 void operator=(const Self&);
00085
00087 float m_Alpha;
00088
00090 float m_Beta;
00091
00095 unsigned int m_Window[ImageType::ImageDimension];
00096
00098 float CumulativeFunction(float u, float v);
00099
00100 };
00101
00102 }
00103
00104 #ifndef ITK_MANUAL_INSTANTIATION
00105 #include "itkPlaheImageFilter.txx"
00106 #endif
00107
00108 #endif