00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkCurvesLevelSetImageFilter_h_
00018 #define __itkCurvesLevelSetImageFilter_h_
00019
00020 #include "itkSegmentationLevelSetImageFilter.h"
00021 #include "itkCurvesLevelSetFunction.h"
00022
00023 namespace itk {
00024
00099 template <class TInputImage,
00100 class TFeatureImage,
00101 class TOutputPixelType = float >
00102 class ITK_EXPORT CurvesLevelSetImageFilter
00103 : public SegmentationLevelSetImageFilter<TInputImage, TFeatureImage, TOutputPixelType >
00104 {
00105 public:
00107 typedef CurvesLevelSetImageFilter Self;
00108 typedef SegmentationLevelSetImageFilter<TInputImage, TFeatureImage, TOutputPixelType> Superclass;
00109 typedef SmartPointer<Self> Pointer;
00110 typedef SmartPointer<const Self> ConstPointer;
00111
00113 typedef typename Superclass::ValueType ValueType;
00114 typedef typename Superclass::OutputImageType OutputImageType;
00115 typedef typename Superclass::FeatureImageType FeatureImageType;
00116
00118 typedef CurvesLevelSetFunction<OutputImageType,
00119 FeatureImageType> CurvesFunctionType;
00120 typedef typename CurvesFunctionType::Pointer
00121 CurvesFunctionPointer;
00122
00124 itkTypeMacro(CurvesLevelSetImageFilter, SegmentationLevelSetImageFilter);
00125
00127 itkNewMacro(Self);
00128
00130 void SetDerivativeSigma( float value )
00131 { m_CurvesFunction->SetDerivativeSigma( value );
00132 this->Modified(); }
00133 float GetDerivativeSigma() const
00134 { return m_CurvesFunction->GetDerivativeSigma(); }
00136
00137 #ifdef ITK_USE_CONCEPT_CHECKING
00138
00139 itkConceptMacro(OutputHasNumericTraitsCheck,
00140 (Concept::HasNumericTraits<TOutputPixelType>));
00141
00143 #endif
00144
00145 protected:
00146 ~CurvesLevelSetImageFilter() {}
00147 CurvesLevelSetImageFilter();
00148
00149 virtual void PrintSelf(std::ostream &os, Indent indent) const;
00150
00151 CurvesLevelSetImageFilter(const Self &);
00152 void operator=(const Self&);
00153
00155 void GenerateData();
00156
00157 private:
00158 CurvesFunctionPointer m_CurvesFunction;
00159 };
00160
00161 }
00162
00163
00164
00165 #ifndef ITK_MANUAL_INSTANTIATION
00166 #include "itkCurvesLevelSetImageFilter.txx"
00167 #endif
00168
00169 #endif
00170