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