00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _itkIsotropicFourthOrderLevelSetImageFilter_h_
00018 #define _itkIsotropicFourthOrderLevelSetImageFilter_h_
00019
00020 #include "itkLevelSetFunctionWithRefitTerm.h"
00021 #include "itkSparseFieldFourthOrderLevelSetImageFilter.h"
00022
00023 namespace itk {
00024
00072 template <class TInputImage, class TOutputImage>
00073 class ITK_EXPORT IsotropicFourthOrderLevelSetImageFilter
00074 : public SparseFieldFourthOrderLevelSetImageFilter <TInputImage, TOutputImage>
00075 {
00076 public:
00078 typedef IsotropicFourthOrderLevelSetImageFilter Self;
00079 typedef SparseFieldFourthOrderLevelSetImageFilter <TInputImage,
00080 TOutputImage> Superclass;
00081 typedef SmartPointer<Self> Pointer;
00082 typedef SmartPointer<const Self> ConstPointer;
00083
00085 itkTypeMacro(IsotropicFourthOrderLevelSetImageFilter,
00086 SparseFieldFourthOrderLevelSetImageFilter);
00087
00089 itkNewMacro (Self);
00090
00092 typedef typename Superclass::SparseImageType SparseImageType;
00093
00096 typedef LevelSetFunctionWithRefitTerm <TOutputImage,SparseImageType> FunctionType;
00097
00099 typedef typename FunctionType::RadiusType RadiusType;
00100
00101 itkGetMacro(MaxFilterIteration,unsigned int);
00102 itkSetMacro(MaxFilterIteration,unsigned int);
00103
00104 protected:
00105 IsotropicFourthOrderLevelSetImageFilter();
00106 ~IsotropicFourthOrderLevelSetImageFilter() {};
00107 virtual void PrintSelf(std::ostream& os, Indent indent) const;
00108
00110 typename FunctionType::Pointer m_Function;
00111
00113 unsigned int m_MaxFilterIteration;
00114
00116 virtual bool Halt()
00117 {
00118 if (this->GetElapsedIterations()==m_MaxFilterIteration) return true;
00119 else return false;
00120 }
00121
00122 private:
00123 IsotropicFourthOrderLevelSetImageFilter(const Self&);
00124
00125 void operator=(const Self&);
00126 };
00127
00128 }
00129
00130 #ifndef ITK_MANUAL_INSTANTIATION
00131 #include "itkIsotropicFourthOrderLevelSetImageFilter.txx"
00132 #endif
00133
00134 #endif