00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkCannySegmentationLevelSetImageFilter_h_
00018 #define __itkCannySegmentationLevelSetImageFilter_h_
00019
00020 #include "itkSegmentationLevelSetImageFilter.h"
00021 #include "itkCannySegmentationLevelSetFunction.h"
00022
00023 namespace itk {
00024
00126 template <class TInputImage,
00127 class TFeatureImage,
00128 class TOutputPixelType = float>
00129 class ITK_EXPORT CannySegmentationLevelSetImageFilter
00130 : public SegmentationLevelSetImageFilter<TInputImage, TFeatureImage, TOutputPixelType,
00131 Image<TOutputPixelType, ::itk::GetImageDimension<TInputImage>::ImageDimension> >
00132 {
00133 public:
00135 typedef CannySegmentationLevelSetImageFilter Self;
00136 typedef SegmentationLevelSetImageFilter<TInputImage, TFeatureImage, TOutputPixelType,
00137 Image<TOutputPixelType,
00138 ::itk::GetImageDimension<TInputImage>::ImageDimension> > Superclass;
00139 typedef SmartPointer<Self> Pointer;
00140 typedef SmartPointer<const Self> ConstPointer;
00141
00143 typedef typename Superclass::ValueType ValueType;
00144 typedef typename Superclass::OutputImageType OutputImageType;
00145 typedef typename Superclass::FeatureImageType FeatureImageType;
00146 typedef typename Superclass::VectorImageType VectorImageType;
00147
00149 typedef ::itk::CannySegmentationLevelSetFunction<OutputImageType,
00150 FeatureImageType> CannyFunctionType;
00151
00152 typedef typename CannyFunctionType::ScalarValueType ScalarValueType;
00153
00155 itkTypeMacro(CannySegmenationLevelSetImageFilter, SegmentationLevelSetImageFilter);
00156
00158 itkNewMacro(Self);
00159
00162 void SetThreshold(ScalarValueType v)
00163 { this->m_CannyFunction->SetThreshold(v); }
00164 ScalarValueType GetThreshold() const
00165 { return this->m_CannyFunction->GetThreshold(); }
00166
00169 void SetVariance(double v)
00170 { this->m_CannyFunction->SetVariance(v); }
00171 double GetVariance() const
00172 { return this->m_CannyFunction->GetVariance(); }
00173
00174 protected:
00175 ~CannySegmentationLevelSetImageFilter() {}
00176 CannySegmentationLevelSetImageFilter();
00177
00178 private:
00179 typename CannyFunctionType::Pointer m_CannyFunction;
00180 };
00181
00182 }
00183
00184
00185
00186 #ifndef ITK_MANUAL_INSTANTIATION
00187 #include "itkCannySegmentationLevelSetImageFilter.txx"
00188 #endif
00189
00190 #endif