00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkGeodesicActiveContourLevelSetImageFilter_h_
00018 #define __itkGeodesicActiveContourLevelSetImageFilter_h_
00019
00020 #include "itkSegmentationLevelSetImageFilter.h"
00021 #include "itkGeodesicActiveContourLevelSetFunction.h"
00022
00023 namespace itk {
00024
00102 template <class TInputImage,
00103 class TFeatureImage,
00104 class TOutputPixelType = float >
00105 class ITK_EXPORT GeodesicActiveContourLevelSetImageFilter
00106 : public SegmentationLevelSetImageFilter< TInputImage, TFeatureImage,
00107 TOutputPixelType, Image<TOutputPixelType,
00108 ::itk::GetImageDimension<TInputImage>::ImageDimension> >
00109 {
00110 public:
00112 typedef GeodesicActiveContourLevelSetImageFilter Self;
00113 typedef SegmentationLevelSetImageFilter< TInputImage, TFeatureImage,
00114 TOutputPixelType, Image<TOutputPixelType,
00115 ::itk::GetImageDimension<TInputImage>::ImageDimension> > Superclass;
00116 typedef SmartPointer<Self> Pointer;
00117 typedef SmartPointer<const Self> ConstPointer;
00118
00120 typedef typename Superclass::ValueType ValueType;
00121 typedef typename Superclass::OutputImageType OutputImageType;
00122 typedef typename Superclass::FeatureImageType FeatureImageType;
00123
00125 typedef GeodesicActiveContourLevelSetFunction<OutputImageType,
00126 FeatureImageType > GeodesicActiveContourFunctionType;
00127 typedef typename GeodesicActiveContourFunctionType::Pointer
00128 GeodesicActiveContourFunctionPointer;
00129
00131 itkTypeMacro(GeodesicActiveContourLevelSetImageFilter, SegmentationLevelSetImageFilter);
00132
00134 itkNewMacro(Self);
00135
00137 void SetDerivativeSigma( float value )
00138 {
00139 if ( value != m_GeodesicActiveContourFunction->GetDerivativeSigma() )
00140 {
00141 m_GeodesicActiveContourFunction->SetDerivativeSigma( value );
00142 this->Modified();
00143 }
00144 }
00145
00147 float GetDerivativeSigma() const
00148 { return m_GeodesicActiveContourFunction->GetDerivativeSigma(); }
00149
00150 protected:
00151 ~GeodesicActiveContourLevelSetImageFilter() {}
00152 GeodesicActiveContourLevelSetImageFilter();
00153
00154 virtual void PrintSelf(std::ostream &os, Indent indent) const;
00155
00156 GeodesicActiveContourLevelSetImageFilter(const Self &);
00157 void operator=(const Self&);
00158
00160 void GenerateData();
00161
00162 private:
00163 GeodesicActiveContourFunctionPointer m_GeodesicActiveContourFunction;
00164 };
00165
00166 }
00167
00168
00169
00170 #ifndef ITK_MANUAL_INSTANTIATION
00171 #include "itkGeodesicActiveContourLevelSetImageFilter.txx"
00172 #endif
00173
00174 #endif