00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _itkVoronoiPartitioningImageFilter_h
00019 #define _itkVoronoiPartitioningImageFilter_h
00020
00021 #include "itkImageToImageFilter.h"
00022 #include "itkVoronoiSegmentationImageFilterBase.h"
00023 #include "itkImage.h"
00024
00025 namespace itk
00026 {
00027
00034 template <class TInputImage, class TOutputImage>
00035 class ITK_EXPORT VoronoiPartitioningImageFilter:
00036 public VoronoiSegmentationImageFilterBase<TInputImage,TOutputImage>
00037 {
00038 public:
00040 typedef VoronoiPartitioningImageFilter Self;
00041 typedef VoronoiSegmentationImageFilterBase<TInputImage,TOutputImage>
00042 Superclass;
00043 typedef SmartPointer <Self> Pointer;
00044 typedef SmartPointer<const Self> ConstPointer;
00045
00047 itkNewMacro(Self);
00048
00050 itkTypeMacro(VoronoiPartitioningImageFilter,
00051 VoronoiSegmentationImageFilterBase);
00052
00054 typedef typename Superclass::BinaryObjectImage BinaryObjectImage;
00055 typedef typename Superclass::IndexList IndexList;
00056 typedef typename Superclass::IndexType IndexType;
00057 typedef typename Superclass::RegionType RegionType;
00058 typedef typename Superclass::InputImageType InputImageType;
00059 typedef typename Superclass::OutputImageType OutputImageType;
00060 typedef typename Superclass::OutputPixelType OutputPixelType;
00061 typedef typename Superclass::PointType PointType;
00062 typedef typename Superclass::PointTypeDeque PointTypeDeque;
00063 typedef typename Superclass::PointIdIterator PointIdIterator;
00064 typedef typename Superclass::CellAutoPointer CellAutoPointer;
00065 typedef typename Superclass::EdgeIterator EdgeIterator;
00066 typedef typename Superclass::NeighborIdIterator NeighborIdIterator;
00067
00069 virtual void MakeSegmentBoundary(void);
00070 virtual void MakeSegmentObject(void);
00071
00076 itkSetMacro(SigmaThreshold, double);
00077 itkGetMacro(SigmaThreshold, double);
00078
00079 protected:
00080 VoronoiPartitioningImageFilter();
00081 ~VoronoiPartitioningImageFilter();
00082 void PrintSelf(std::ostream &os, Indent indent) const;
00083
00084
00085 virtual void ClassifyDiagram(void);
00086
00087
00088 virtual void GenerateAddingSeeds(void);
00089
00090
00091 virtual bool TestHomogeneity(IndexList &Plist);
00092
00093
00094 double m_SigmaThreshold;
00095
00096 private:
00097 VoronoiPartitioningImageFilter(const Self&);
00098 void operator=(const Self&);
00099 };
00100
00101 }
00102
00103
00104 #ifndef ITK_MANUAL_INSTANTIATION
00105 #include "itkVoronoiPartitioningImageFilter.txx"
00106 #endif
00107
00108 #endif
00109
00110
00111
00112