00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _itkVoronoiSegmentationImageFilter_h
00019 #define _itkVoronoiSegmentationImageFilter_h
00020
00021 #include "itkImageToImageFilter.h"
00022 #include "itkVoronoiSegmentationImageFilterBase.h"
00023 #include "itkImage.h"
00024
00025 namespace itk
00026 {
00027
00054 template <class TInputImage, class TOutputImage>
00055 class VoronoiSegmentationImageFilter:
00056 public VoronoiSegmentationImageFilterBase<TInputImage,TOutputImage>
00057 {
00058 public:
00060 typedef VoronoiSegmentationImageFilter Self;
00061 typedef VoronoiSegmentationImageFilterBase<TInputImage,TOutputImage>
00062 Superclass;
00063 typedef SmartPointer <Self> Pointer;
00064 typedef SmartPointer<const Self> ConstPointer;
00065
00067 itkNewMacro(Self);
00068
00070 itkTypeMacro(VoronoiSegmentationImageFilter,
00071 VoronoiSegmentationImageFilterBase);
00072
00074 typedef typename Superclass::BinaryObjectImage BinaryObjectImage;
00075 typedef typename Superclass::IndexList IndexList;
00076 typedef typename Superclass::IndexType IndexType;
00077 typedef typename Superclass::RegionType RegionType;
00078 typedef typename Superclass::InputImageType InputImageType;
00079
00081 itkSetMacro(Mean, double);
00082 itkGetMacro(Mean, double);
00083
00086 itkSetMacro(STD, double);
00087 itkGetMacro(STD, double);
00088
00090 itkSetMacro(MeanTolerance, double);
00091 itkGetMacro(MeanTolerance, double);
00092
00094 itkSetMacro(STDTolerance, double);
00095
00097 itkGetMacro(STDTolerance, double);
00098
00100 void SetMeanPercentError(double x);
00101 itkGetMacro(MeanPercentError, double);
00102
00104 itkGetMacro(STDPercentError, double);
00105 void SetSTDPercentError(double x);
00106
00109 void TakeAPrior(BinaryObjectImage* aprior);
00110
00111
00112 protected:
00113 VoronoiSegmentationImageFilter();
00114 ~VoronoiSegmentationImageFilter();
00115
00116 private:
00117 double m_Mean;
00118 double m_STD;
00119 double m_MeanTolerance;
00120 double m_STDTolerance;
00121 double m_MeanPercentError;
00122 double m_STDPercentError;
00123
00124 virtual bool TestHomogeneity(IndexList &Plist);
00125
00126 private:
00127 VoronoiSegmentationImageFilter(const Self&);
00128 void operator=(const Self&);
00129 };
00130
00131 }
00132
00133
00134 #ifndef ITK_MANUAL_INSTANTIATION
00135 #include "itkVoronoiSegmentationImageFilter.txx"
00136 #endif
00137
00138 #endif
00139
00140
00141
00142