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