00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkAdaptiveHistogramEqualizationImageFilter_h
00018
#define __itkAdaptiveHistogramEqualizationImageFilter_h
00019
00020
00021
#include <itkImageToImageFilter.h>
00022
#include <itkImage.h>
00023
00024
namespace itk
00025 {
00059
template <
class TImageType>
00060 class ITK_EXPORT AdaptiveHistogramEqualizationImageFilter :
00061
public ImageToImageFilter< TImageType, TImageType >
00062 {
00063
public:
00065
typedef AdaptiveHistogramEqualizationImageFilter
Self;
00066 typedef ImageToImageFilter< TImageType, TImageType > Superclass;
00067 typedef SmartPointer<Self> Pointer;
00068 typedef SmartPointer<const Self> constPointer;
00069
00070
itkStaticConstMacro(ImageDimension,
unsigned int,
00071 TImageType::ImageDimension );
00072
00074
itkNewMacro(
Self);
00075
00077
itkTypeMacro(AdaptiveHistogramEqualizationImageFilter,
ImageToImageFilter);
00078
00080
typedef TImageType
ImageType;
00081 typedef typename ImageType::SizeType
ImageSizeType;
00082
00086
itkSetMacro(Alpha,
float);
00087
itkGetMacro(Alpha,
float);
00088
00093
itkSetMacro(Beta,
float);
00094
itkGetMacro(Beta,
float);
00095
00099
itkSetMacro(Radius,
ImageSizeType);
00100
itkGetConstReferenceMacro(Radius,
ImageSizeType);
00101
00104
itkSetMacro(UseLookupTable,
bool);
00105
itkGetMacro(UseLookupTable,
bool);
00106
itkBooleanMacro(UseLookupTable);
00107
00108
protected:
00109 AdaptiveHistogramEqualizationImageFilter()
00110 {
00111 m_Alpha = .3;
00112 m_Beta = .3;
00113 m_Radius.Fill( 5 );
00114 m_UseLookupTable =
false;
00115 }
00116
virtual ~AdaptiveHistogramEqualizationImageFilter(){}
00117
void PrintSelf(std::ostream& os, Indent indent)
const;
00118
00120
void GenerateData();
00121
00126
void GenerateInputRequestedRegion();
00127
00128
private:
00129 AdaptiveHistogramEqualizationImageFilter(
const Self&);
00130
void operator=(
const Self&);
00131
00133
float m_Alpha;
00134
00136
float m_Beta;
00137
00140
ImageSizeType m_Radius;
00141
00144
bool m_UseLookupTable;
00145
00147
float CumulativeFunction(
float u,
float v);
00148
00149 };
00150
00151 }
00152
00153
#ifndef ITK_MANUAL_INSTANTIATION
00154
#include "itkAdaptiveHistogramEqualizationImageFilter.txx"
00155
#endif
00156
00157
#endif