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, class TBinaryPriorImage=Image<unsigned char,2> >
00055 class ITK_EXPORT VoronoiSegmentationImageFilter:
00056 public VoronoiSegmentationImageFilterBase<TInputImage,TOutputImage, TBinaryPriorImage>
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(const BinaryObjectImage* aprior);
00110
00111
00112 protected:
00113 VoronoiSegmentationImageFilter();
00114 ~VoronoiSegmentationImageFilter();
00115 virtual void PrintSelf(std::ostream& os, Indent indent) const;
00116
00117 private:
00118 double m_Mean;
00119 double m_STD;
00120 double m_MeanTolerance;
00121 double m_STDTolerance;
00122 double m_MeanPercentError;
00123 double m_STDPercentError;
00124
00125 virtual bool TestHomogeneity(IndexList &Plist);
00126
00127 private:
00128 VoronoiSegmentationImageFilter(const Self&);
00129 void operator=(const Self&);
00130 };
00131
00132 }
00133
00134
00135 #ifndef ITK_MANUAL_INSTANTIATION
00136 #include "itkVoronoiSegmentationImageFilter.txx"
00137 #endif
00138
00139 #endif
00140
00141
00142
00143