00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkThresholdSegmentationLevelSetImageFilter_h_
00018 #define __itkThresholdSegmentationLevelSetImageFilter_h_
00019
00020 #include "itkSegmentationLevelSetImageFilter.h"
00021 #include "itkThresholdSegmentationLevelSetFunction.h"
00022
00023 namespace itk {
00024
00080 template <class TInputImage,
00081 class TFeatureImage,
00082 class TOutputPixelType = float >
00083 class ITK_EXPORT ThresholdSegmentationLevelSetImageFilter
00084 : public SegmentationLevelSetImageFilter<TInputImage, TFeatureImage, TOutputPixelType, Image<TOutputPixelType, ::itk::GetImageDimension<TInputImage>::ImageDimension> >
00085 {
00086 public:
00088 typedef ThresholdSegmentationLevelSetImageFilter Self;
00089 typedef SegmentationLevelSetImageFilter<TInputImage, TFeatureImage, TOutputPixelType, Image<TOutputPixelType, ::itk::GetImageDimension<TInputImage>::ImageDimension> > Superclass;
00090 typedef SmartPointer<Self> Pointer;
00091 typedef SmartPointer<const Self> ConstPointer;
00092
00094 typedef typename Superclass::ValueType ValueType;
00095 typedef typename Superclass::OutputImageType OutputImageType;
00096 typedef typename Superclass::FeatureImageType FeatureImageType;
00097
00099 typedef ThresholdSegmentationLevelSetFunction<OutputImageType,
00100 FeatureImageType> ThresholdFunctionType;
00101 typedef typename ThresholdFunctionType::Pointer ThresholdFunctionPointer;
00102
00104 itkTypeMacro(ThresholdSegmentationLevelSetImageFilter, SegmentationLevelSetImageFilter);
00105
00107 itkNewMacro(Self);
00108
00110 void SetUpperThreshold(ValueType v)
00111 {
00112 this->m_ThresholdFunction->SetUpperThreshold(v);
00113 this->Modified();
00114 }
00115 void SetLowerThreshold(ValueType v)
00116 {
00117 this->m_ThresholdFunction->SetLowerThreshold(v);
00118 this->Modified();
00119 }
00120 ValueType GetUpperThreshold() const
00121 {
00122 return m_ThresholdFunction->GetUpperThreshold();
00123 }
00124 ValueType GetLowerThreshold() const
00125 {
00126 return m_ThresholdFunction->GetLowerThreshold();
00127 }
00128
00129 protected:
00130 ~ThresholdSegmentationLevelSetImageFilter() {}
00131 ThresholdSegmentationLevelSetImageFilter();
00132
00133 virtual void PrintSelf(std::ostream &os, Indent indent) const;
00134
00135 ThresholdSegmentationLevelSetImageFilter(const Self &);
00136 void operator=(const Self&);
00137 private:
00138 ThresholdFunctionPointer m_ThresholdFunction;
00139 };
00140
00141 }
00142
00143
00144
00145 #ifndef ITK_MANUAL_INSTANTIATION
00146 #include "itkThresholdSegmentationLevelSetImageFilter.txx"
00147 #endif
00148
00149 #endif