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>
00108 {
00109 public:
00111 typedef GeodesicActiveContourLevelSetImageFilter Self;
00112 typedef SegmentationLevelSetImageFilter< TInputImage, TFeatureImage,
00113 TOutputPixelType> Superclass;
00114 typedef SmartPointer<Self> Pointer;
00115 typedef SmartPointer<const Self> ConstPointer;
00116
00118 typedef typename Superclass::ValueType ValueType;
00119 typedef typename Superclass::OutputImageType OutputImageType;
00120 typedef typename Superclass::FeatureImageType FeatureImageType;
00121
00123 typedef GeodesicActiveContourLevelSetFunction<OutputImageType,
00124 FeatureImageType > GeodesicActiveContourFunctionType;
00125 typedef typename GeodesicActiveContourFunctionType::Pointer
00126 GeodesicActiveContourFunctionPointer;
00127
00129 itkTypeMacro(GeodesicActiveContourLevelSetImageFilter, SegmentationLevelSetImageFilter);
00130
00132 itkNewMacro(Self);
00133
00135 void SetDerivativeSigma( float value )
00136 {
00137 if ( value != m_GeodesicActiveContourFunction->GetDerivativeSigma() )
00138 {
00139 m_GeodesicActiveContourFunction->SetDerivativeSigma( value );
00140 this->Modified();
00141 }
00142 }
00143
00145 float GetDerivativeSigma() const
00146 { return m_GeodesicActiveContourFunction->GetDerivativeSigma(); }
00147
00148 protected:
00149 ~GeodesicActiveContourLevelSetImageFilter() {}
00150 GeodesicActiveContourLevelSetImageFilter();
00151
00152 virtual void PrintSelf(std::ostream &os, Indent indent) const;
00153
00154 GeodesicActiveContourLevelSetImageFilter(const Self &);
00155 void operator=(const Self&);
00156
00158 void GenerateData();
00159
00160 private:
00161 GeodesicActiveContourFunctionPointer m_GeodesicActiveContourFunction;
00162 };
00163
00164 }
00165
00166
00167
00168 #ifndef ITK_MANUAL_INSTANTIATION
00169 #include "itkGeodesicActiveContourLevelSetImageFilter.txx"
00170 #endif
00171
00172 #endif