00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkOptAdaptiveHistogramEqualizationImageFilter_h
00018 #define __itkOptAdaptiveHistogramEqualizationImageFilter_h
00019
00020
00021 #include <itkBoxImageFilter.h>
00022 #include <itkImage.h>
00023
00024 namespace itk
00025 {
00060 template <class TImageType>
00061 class ITK_EXPORT AdaptiveHistogramEqualizationImageFilter :
00062 public BoxImageFilter< TImageType, TImageType >
00063 {
00064 public:
00065
00069 typedef AdaptiveHistogramEqualizationImageFilter Self;
00070 typedef ImageToImageFilter< TImageType, TImageType > Superclass;
00071 typedef SmartPointer<Self> Pointer;
00072 typedef SmartPointer<const Self> constPointer;
00073
00074 itkStaticConstMacro(ImageDimension, unsigned int,
00075 TImageType::ImageDimension );
00076
00078 itkNewMacro(Self);
00079
00081 itkTypeMacro(AdaptiveHistogramEqualizationImageFilter, ImageToImageFilter);
00082
00084 typedef TImageType ImageType;
00085 typedef typename ImageType::SizeType ImageSizeType;
00086
00090 itkSetMacro(Alpha, float);
00091 itkGetMacro(Alpha, float);
00093
00098 itkSetMacro(Beta, float);
00099 itkGetMacro(Beta, float);
00101
00104 itkSetMacro(UseLookupTable, bool);
00105 itkGetMacro(UseLookupTable, bool);
00106 itkBooleanMacro(UseLookupTable);
00108
00109 protected:
00110 AdaptiveHistogramEqualizationImageFilter()
00111 {
00112 m_Alpha = .3;
00113 m_Beta = .3;
00114 this->SetRadius( 5 );
00115 m_UseLookupTable = false;
00116 }
00117 virtual ~AdaptiveHistogramEqualizationImageFilter(){}
00118 void PrintSelf(std::ostream& os, Indent indent) const;
00119
00123 void GenerateData();
00124
00125 private:
00126 AdaptiveHistogramEqualizationImageFilter(const Self&);
00127 void operator=(const Self&);
00128
00130 float m_Alpha;
00131
00133 float m_Beta;
00134
00137 bool m_UseLookupTable;
00138
00140 float CumulativeFunction(float u, float v);
00141
00142 };
00143
00144 }
00145
00146 #ifndef ITK_MANUAL_INSTANTIATION
00147 #include "itkOptAdaptiveHistogramEqualizationImageFilter.txx"
00148 #endif
00149
00150 #endif
00151