00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkRecursiveGaussianImageFilter_h
00018
#define __itkRecursiveGaussianImageFilter_h
00019
00020
#include "itkRecursiveSeparableImageFilter.h"
00021
00022
namespace itk
00023 {
00024
00046
template <
typename TInputImage,
typename TOutputImage=TInputImage>
00047 class ITK_EXPORT RecursiveGaussianImageFilter :
00048
public RecursiveSeparableImageFilter<TInputImage,TOutputImage>
00049 {
00050
public:
00052 typedef RecursiveGaussianImageFilter
Self;
00053 typedef RecursiveSeparableImageFilter<TInputImage,TOutputImage> Superclass;
00054 typedef SmartPointer<Self> Pointer;
00055 typedef SmartPointer<const Self> ConstPointer;
00056
00057 typedef typename Superclass::RealType
RealType;
00058
00060
itkNewMacro(
Self);
00061
00063
itkTypeMacro( RecursiveGaussianImageFilter,
RecursiveSeparableImageFilter );
00064
00067
itkGetMacro( Sigma,
RealType );
00068
itkSetMacro( Sigma,
RealType );
00069
00073
typedef enum { ZeroOrder, FirstOrder, SecondOrder } OrderEnumType;
00074
00076
typedef TOutputImage
OutputImageType;
00077
00078
00094
itkSetMacro( NormalizeAcrossScale,
bool );
00095
itkGetMacro( NormalizeAcrossScale,
bool );
00096
00103
itkSetMacro( Order, OrderEnumType );
00104
itkGetMacro( Order, OrderEnumType );
00105
00107
void SetZeroOrder();
00108
00110
void SetFirstOrder();
00111
00113
void SetSecondOrder();
00114
00115
00116
protected:
00117 RecursiveGaussianImageFilter();
00118
virtual ~RecursiveGaussianImageFilter() {};
00119
void PrintSelf(std::ostream& os,
Indent indent)
const;
00120
00124
virtual void SetUp(
void);
00125
00131
void ComputeFilterCoefficients(
bool symmetric);
00132
00133
private:
00134 RecursiveGaussianImageFilter(
const Self&);
00135
void operator=(
const Self&);
00136
00138
RealType m_Sigma;
00139
00141
bool m_NormalizeAcrossScale;
00142
00143 OrderEnumType m_Order;
00144
00145 };
00146
00147 }
00148
00149
#ifndef ITK_MANUAL_INSTANTIATION
00150
#include "itkRecursiveGaussianImageFilter.txx"
00151
#endif
00152
00153
#endif
00154