00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkVectorThresholdSegmentationLevelSetImageFilter_h_
00018
#define __itkVectorThresholdSegmentationLevelSetImageFilter_h_
00019
00020
#include "itkSegmentationLevelSetImageFilter.h"
00021
#include "itkVectorThresholdSegmentationLevelSetFunction.h"
00022
00023
namespace itk {
00024
00085
template <
class TInputImage,
00086
class TFeatureImage,
00087
class TOutputPixelType =
float >
00088 class ITK_EXPORT VectorThresholdSegmentationLevelSetImageFilter
00089 :
public SegmentationLevelSetImageFilter<TInputImage, TFeatureImage, TOutputPixelType, Image<TOutputPixelType, ::itk::GetImageDimension<TInputImage>::ImageDimension> >
00090 {
00091
public:
00093 typedef VectorThresholdSegmentationLevelSetImageFilter
Self;
00094 typedef SegmentationLevelSetImageFilter<TInputImage, TFeatureImage, TOutputPixelType, Image<TOutputPixelType, ::itk::GetImageDimension<TInputImage>::ImageDimension> >
Superclass;
00095 typedef SmartPointer<Self> Pointer;
00096 typedef SmartPointer<const Self> ConstPointer;
00097
00099 typedef typename Superclass::ValueType
ValueType;
00100 typedef typename Superclass::OutputImageType
OutputImageType;
00101 typedef typename Superclass::FeatureImageType
FeatureImageType;
00102
00104 typedef VectorThresholdSegmentationLevelSetFunction<OutputImageType,FeatureImageType> ThresholdFunctionType;
00105 typedef typename ThresholdFunctionType::Pointer
ThresholdFunctionPointer;
00106 typedef typename ThresholdFunctionType::MeanVectorType
MeanVectorType;
00107 typedef typename ThresholdFunctionType::CovarianceMatrixType
CovarianceMatrixType;
00108 typedef typename ThresholdFunctionType::ScalarValueType
ScalarValueType;
00109
00111
itkTypeMacro(VectorThresholdSegmentationLevelSetImageFilter,
SegmentationLevelSetImageFilter);
00112
00114
itkNewMacro(
Self);
00115
00117 void SetMean(
const MeanVectorType &mean)
00118 {
00119 m_ThresholdFunction->SetMean(mean);
00120 this->Modified();
00121 }
00122 const MeanVectorType & GetMean()
const
00123
{
00124
return m_ThresholdFunction->GetMean();
00125 }
00126
00127
00128
void SetCovariance(
const CovarianceMatrixType &cov)
00129 {
00130 m_ThresholdFunction->SetCovariance(cov);
00131 this->Modified();
00132 }
00133
const CovarianceMatrixType & GetCovariance()
const
00134 {
00135
return m_ThresholdFunction->GetCovariance();
00136 }
00137
00139
void SetThreshold(ScalarValueType thr)
00140 {
00141 m_ThresholdFunction->SetThreshold(thr);
00142 this->Modified();
00143 }
00144 ScalarValueType GetThreshold ()
00145 {
00146
return m_ThresholdFunction->GetThreshold();
00147 }
00148
00149
00150
protected:
00151 ~VectorThresholdSegmentationLevelSetImageFilter() {}
00152 VectorThresholdSegmentationLevelSetImageFilter();
00153
00154
virtual void PrintSelf(std::ostream &os,
Indent indent)
const;
00155
00156 VectorThresholdSegmentationLevelSetImageFilter(
const Self &);
00157
void operator=(
const Self&);
00158
private:
00159
ThresholdFunctionPointer m_ThresholdFunction;
00160 };
00161
00162 }
00163
00164
00165
00166
#ifndef ITK_MANUAL_INSTANTIATION
00167
#include "itkVectorThresholdSegmentationLevelSetImageFilter.txx"
00168
#endif
00169
00170
#endif