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 ITK_EXPORT 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
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