/vol/vipdata/irtk/image++/include/irtkGaussianNoise.h

00001 /*=========================================================================
00002 
00003   Library   : Image Registration Toolkit (IRTK)
00004   Module    : $Id: irtkGaussianNoise.h 2 2008-12-23 12:40:14Z dr $
00005   Copyright : Imperial College, Department of Computing
00006               Visual Information Processing (VIP), 2008 onwards
00007   Date      : $Date: 2008-12-23 12:40:14 +0000 (Tue, 23 Dec 2008) $
00008   Version   : $Revision: 2 $
00009   Changes   : $Author: dr $
00010 
00011 =========================================================================*/
00012 
00013 #ifndef _IRTKGAUSSIANNOISE_H
00014 
00015 #define _IRTKGAUSSIANNOISE_H
00016 
00024 template <class VoxelType> class irtkGaussianNoise : public irtkNoise<VoxelType>
00025 {
00026 
00027 protected:
00028 
00030   double _Mean;
00031 
00035   double _Sigma;
00036 
00038   VoxelType _MinVal;
00039 
00041   VoxelType _MaxVal;
00042 
00043   // Returns the name of the class
00044   virtual const char *NameOfClass();
00045 
00046 public:
00047 
00048   // Default constructor
00049   irtkGaussianNoise();
00050 
00054   irtkGaussianNoise(double mean, double sigma, VoxelType min, VoxelType max);
00055 
00057   ~irtkGaussianNoise() {};
00058 
00059   // Run gaussian noise filter
00060   virtual double Run(int, int, int, int);
00061 
00063   SetMacro(Mean, double);
00064 
00066   GetMacro(Mean, double);
00067 
00069   SetMacro(Sigma, double);
00070 
00072   GetMacro(Sigma, double);
00073 
00075   SetMacro(MinVal, VoxelType);
00076 
00078   GetMacro(MinVal, VoxelType);
00079 
00081   SetMacro(MaxVal, VoxelType);
00082 
00084   GetMacro(MaxVal, VoxelType);
00085 };
00086 
00087 #endif