00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkGeodesicActiveContourShapePriorLevelSetImageFilter_h_
00018 #define __itkGeodesicActiveContourShapePriorLevelSetImageFilter_h_
00019
00020 #include "itkShapePriorSegmentationLevelSetImageFilter.h"
00021 #include "itkGeodesicActiveContourShapePriorLevelSetFunction.h"
00022 #include "itkShapePriorMAPCostFunction.h"
00023
00024 namespace itk {
00025
00108 template <class TInputImage,
00109 class TFeatureImage,
00110 class TOutputPixelType = float >
00111 class ITK_EXPORT GeodesicActiveContourShapePriorLevelSetImageFilter
00112 : public ShapePriorSegmentationLevelSetImageFilter< TInputImage, TFeatureImage,
00113 TOutputPixelType >
00114 {
00115 public:
00117 typedef GeodesicActiveContourShapePriorLevelSetImageFilter Self;
00118 typedef ShapePriorSegmentationLevelSetImageFilter< TInputImage, TFeatureImage,
00119 TOutputPixelType > Superclass;
00120 typedef SmartPointer<Self> Pointer;
00121 typedef SmartPointer<const Self> ConstPointer;
00122
00124 typedef typename Superclass::ValueType ValueType;
00125 typedef typename Superclass::OutputImageType OutputImageType;
00126 typedef typename Superclass::FeatureImageType FeatureImageType;
00127 typedef typename Superclass::OutputPixelType OutputPixelType;
00128
00130 typedef GeodesicActiveContourShapePriorLevelSetFunction< OutputImageType,
00131 FeatureImageType >
00132 GeodesicActiveContourFunctionType;
00133 typedef typename GeodesicActiveContourFunctionType::Pointer
00134 GeodesicActiveContourFunctionPointer;
00135
00136
00138 itkTypeMacro(GeodesicActiveContourShapePriorLevelSetImageFilter,
00139 ShapePriorSegmentationLevelSetImageFilter);
00140
00142 itkNewMacro(Self);
00143
00145 void SetDerivativeSigma( float value )
00146 {
00147 if ( value != m_GeodesicActiveContourFunction->GetDerivativeSigma() )
00148 {
00149 m_GeodesicActiveContourFunction->SetDerivativeSigma( value );
00150 this->Modified();
00151 }
00152 }
00153
00155 float GetDerivativeSigma() const
00156 { return m_GeodesicActiveContourFunction->GetDerivativeSigma(); }
00157
00158 protected:
00159 ~GeodesicActiveContourShapePriorLevelSetImageFilter() {}
00160 GeodesicActiveContourShapePriorLevelSetImageFilter();
00161
00162 virtual void PrintSelf(std::ostream &os, Indent indent) const;
00163
00164 GeodesicActiveContourShapePriorLevelSetImageFilter(const Self &);
00165 void operator=(const Self&);
00166
00169 void GenerateData();
00170
00171 private:
00172 GeodesicActiveContourFunctionPointer m_GeodesicActiveContourFunction;
00173
00174 };
00175
00176 }
00177
00178
00179
00180 #ifndef ITK_MANUAL_INSTANTIATION
00181 #include "itkGeodesicActiveContourShapePriorLevelSetImageFilter.txx"
00182 #endif
00183
00184 #endif