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
00131
void SetEdgeWeight(ValueType v)
00132 {
00133 this->m_ThresholdFunction->SetEdgeWeight(v);
00134 this->Modified();
00135 }
00136 ValueType GetEdgeWeight()
const
00137 {
00138
return m_ThresholdFunction->GetEdgeWeight();
00139 }
00140
00144
void SetSmoothingIterations(
int v)
00145 {
00146 this->m_ThresholdFunction->SetSmoothingIterations(v);
00147 this->Modified();
00148 }
00149
int GetSmoothingIterations()
const
00150
{
00151 return m_ThresholdFunction->GetSmoothingIterations();
00152 }
00153
00157
void SetSmoothingTimeStep(ValueType v)
00158 {
00159 this->m_ThresholdFunction->SetSmoothingTimeStep(v);
00160 this->Modified();
00161 }
00162 ValueType GetSmoothingTimeStep()
const
00163
{
00164
return m_ThresholdFunction->GetSmoothingTimeStep();
00165 }
00166
00170
void SetSmoothingConductance(ValueType v)
00171 {
00172 this->m_ThresholdFunction->SetSmoothingConductance(v);
00173 this->Modified();
00174 }
00175 ValueType GetSmoothingConductance()
const
00176
{
00177
return m_ThresholdFunction->GetSmoothingConductance();
00178 }
00179
00180
protected:
00181 ~ThresholdSegmentationLevelSetImageFilter() {}
00182 ThresholdSegmentationLevelSetImageFilter();
00183
00184
virtual void PrintSelf(std::ostream &os,
Indent indent)
const;
00185
00186 ThresholdSegmentationLevelSetImageFilter(
const Self &);
00187
void operator=(
const Self&);
00188
private:
00189
ThresholdFunctionPointer m_ThresholdFunction;
00190 };
00191
00192 }
00193
00194
00195
00196
#ifndef ITK_MANUAL_INSTANTIATION
00197
#include "itkThresholdSegmentationLevelSetImageFilter.txx"
00198
#endif
00199
00200
#endif