00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkNoiseImageFilter_h
00018 #define __itkNoiseImageFilter_h
00019
00020 #include "itkImageToImageFilter.h"
00021 #include "itkImage.h"
00022 #include "itkNumericTraits.h"
00023
00024 namespace itk
00025 {
00044 template <class TInputImage, class TOutputImage>
00045 class ITK_EXPORT NoiseImageFilter :
00046 public ImageToImageFilter< TInputImage, TOutputImage >
00047 {
00048 public:
00050 itkStaticConstMacro(InputImageDimension, unsigned int,
00051 TInputImage::ImageDimension);
00052 itkStaticConstMacro(OutputImageDimension, unsigned int,
00053 TOutputImage::ImageDimension);
00055
00057 typedef TInputImage InputImageType;
00058 typedef TOutputImage OutputImageType;
00059
00061 typedef NoiseImageFilter Self;
00062 typedef ImageToImageFilter< InputImageType, OutputImageType> Superclass;
00063 typedef SmartPointer<Self> Pointer;
00064 typedef SmartPointer<const Self> ConstPointer;
00065
00067 itkNewMacro(Self);
00068
00070 itkTypeMacro(NoiseImageFilter, ImageToImageFilter);
00071
00073 typedef typename InputImageType::PixelType InputPixelType;
00074 typedef typename OutputImageType::PixelType OutputPixelType;
00075 typedef typename NumericTraits<InputPixelType>::RealType InputRealType;
00076
00077 typedef typename InputImageType::RegionType InputImageRegionType;
00078 typedef typename OutputImageType::RegionType OutputImageRegionType;
00079
00080 typedef typename InputImageType::SizeType InputSizeType;
00081
00085 itkSetMacro(Radius, InputSizeType);
00086
00088 itkGetConstReferenceMacro(Radius, InputSizeType);
00089
00096 virtual void GenerateInputRequestedRegion() throw(InvalidRequestedRegionError);
00097
00098 #ifdef ITK_USE_CONCEPT_CHECKING
00099
00100 itkConceptMacro(InputHasNumericTraitsCheck,
00101 (Concept::HasNumericTraits<InputPixelType>));
00102
00104 #endif
00105
00106 protected:
00107 NoiseImageFilter();
00108 virtual ~NoiseImageFilter() {}
00109 void PrintSelf(std::ostream& os, Indent indent) const;
00110
00121 void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread,
00122 int threadId );
00123
00124 private:
00125 NoiseImageFilter(const Self&);
00126 void operator=(const Self&);
00127
00128 InputSizeType m_Radius;
00129 };
00130
00131 }
00132
00133 #ifndef ITK_MANUAL_INSTANTIATION
00134 #include "itkNoiseImageFilter.txx"
00135 #endif
00136
00137 #endif
00138