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 {
00132 public:
00134 typedef CannySegmentationLevelSetImageFilter Self;
00135 typedef SegmentationLevelSetImageFilter<TInputImage, TFeatureImage, TOutputPixelType > Superclass;
00136 typedef SmartPointer<Self> Pointer;
00137 typedef SmartPointer<const Self> ConstPointer;
00138
00140 typedef typename Superclass::ValueType ValueType;
00141 typedef typename Superclass::OutputImageType OutputImageType;
00142 typedef typename Superclass::FeatureImageType FeatureImageType;
00143 typedef typename Superclass::VectorImageType VectorImageType;
00144
00146 typedef ::itk::CannySegmentationLevelSetFunction<OutputImageType,
00147 FeatureImageType> CannyFunctionType;
00148
00149 typedef typename CannyFunctionType::ScalarValueType ScalarValueType;
00150
00152 itkTypeMacro(CannySegmenationLevelSetImageFilter, SegmentationLevelSetImageFilter);
00153
00155 itkNewMacro(Self);
00156
00159 void SetThreshold(ScalarValueType v)
00160 { this->m_CannyFunction->SetThreshold(v); }
00161 ScalarValueType GetThreshold() const
00162 { return this->m_CannyFunction->GetThreshold(); }
00163
00166 void SetVariance(double v)
00167 { this->m_CannyFunction->SetVariance(v); }
00168 double GetVariance() const
00169 { return this->m_CannyFunction->GetVariance(); }
00170
00173 OutputImageType *GetCannyImage(void)
00174 { return this->m_CannyFunction->GetCannyImage(); }
00175 protected:
00176 ~CannySegmentationLevelSetImageFilter() {}
00177 CannySegmentationLevelSetImageFilter();
00178
00179 private:
00180 typename CannyFunctionType::Pointer m_CannyFunction;
00181 };
00182
00183 }
00184
00185
00186
00187 #ifndef ITK_MANUAL_INSTANTIATION
00188 #include "itkCannySegmentationLevelSetImageFilter.txx"
00189 #endif
00190
00191 #endif