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 typedef typename Superclass::SpeedImageType SpeedImageType;
00145
00147 typedef ::itk::CannySegmentationLevelSetFunction<OutputImageType,
00148 FeatureImageType> CannyFunctionType;
00149
00150 typedef typename CannyFunctionType::ScalarValueType ScalarValueType;
00151
00153 itkTypeMacro(CannySegmenationLevelSetImageFilter, SegmentationLevelSetImageFilter);
00154
00156 itkNewMacro(Self);
00157
00160 void SetThreshold(ScalarValueType v)
00161 { this->m_CannyFunction->SetThreshold(v); }
00162 ScalarValueType GetThreshold() const
00163 { return this->m_CannyFunction->GetThreshold(); }
00164
00167 void SetVariance(double v)
00168 { this->m_CannyFunction->SetVariance(v); }
00169 double GetVariance() const
00170 { return this->m_CannyFunction->GetVariance(); }
00171
00174 OutputImageType *GetCannyImage(void)
00175 { return this->m_CannyFunction->GetCannyImage(); }
00176 protected:
00177 ~CannySegmentationLevelSetImageFilter() {}
00178 CannySegmentationLevelSetImageFilter();
00179
00180 private:
00181 typename CannyFunctionType::Pointer m_CannyFunction;
00182 };
00183
00184 }
00185
00186
00187
00188 #ifndef ITK_MANUAL_INSTANTIATION
00189 #include "itkCannySegmentationLevelSetImageFilter.txx"
00190 #endif
00191
00192 #endif