00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkStochasticFractalDimensionImageFilter_h
00018 #define __itkStochasticFractalDimensionImageFilter_h
00019
00020 #include "itkImageToImageFilter.h"
00021
00022 #include "itkConstNeighborhoodIterator.h"
00023
00024 namespace itk {
00025
00050 template<class TInputImage, class TMaskImage = Image<unsigned char,
00051 ::itk::GetImageDimension<TInputImage>::ImageDimension>,
00052 class TOutputImage = TInputImage>
00053 class ITK_EXPORT StochasticFractalDimensionImageFilter :
00054 public ImageToImageFilter<TInputImage, TOutputImage>
00055 {
00056 public:
00058 typedef StochasticFractalDimensionImageFilter Self;
00059 typedef ImageToImageFilter<TInputImage, TOutputImage> Superclass;
00060 typedef SmartPointer<Self> Pointer;
00061 typedef SmartPointer<const Self> ConstPointer;
00062
00064 itkNewMacro( Self );
00065
00067 itkStaticConstMacro( ImageDimension, unsigned int, TInputImage::ImageDimension );
00068
00070 typedef float RealType;
00071 typedef TInputImage InputImageType;
00072 typedef TMaskImage MaskImageType;
00073 typedef TOutputImage OutputImageType;
00074
00076 itkTypeMacro( StochasticFractalDimensionImageFilter, ImageToImageFilter );
00077
00078
00082 void SetMaskImage( const MaskImageType * mask );
00083 const MaskImageType * GetMaskImage() const;
00085
00088 typedef ConstNeighborhoodIterator<InputImageType> ConstNeighborhoodIteratorType;
00089 typedef typename ConstNeighborhoodIteratorType::RadiusType RadiusType;
00090
00092 itkSetMacro( NeighborhoodRadius, RadiusType );
00093 itkGetConstMacro( NeighborhoodRadius, RadiusType );
00095
00096 protected:
00097 StochasticFractalDimensionImageFilter();
00098 ~StochasticFractalDimensionImageFilter();
00099
00100 void PrintSelf( std::ostream& os, Indent indent ) const;
00101
00102 void GenerateData();
00103
00104 private:
00105 StochasticFractalDimensionImageFilter( const Self& );
00106 void operator=( const Self& );
00107
00108 RadiusType m_NeighborhoodRadius;
00109 typename MaskImageType::Pointer m_MaskImage;
00110
00111 };
00112
00113 }
00114
00115 #ifndef ITK_MANUAL_INSTANTIATION
00116 #include "itkStochasticFractalDimensionImageFilter.txx"
00117 #endif
00118
00119 #endif
00120