go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkImageRandomSamplerSparseMask.h
Go to the documentation of this file.
00001 /*======================================================================
00002 
00003   This file is part of the elastix software.
00004 
00005   Copyright (c) University Medical Center Utrecht. All rights reserved.
00006   See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
00007   details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE. See the above copyright notices for more information.
00012 
00013 ======================================================================*/
00014 
00015 #ifndef __ImageRandomSamplerSparseMask_h
00016 #define __ImageRandomSamplerSparseMask_h
00017 
00018 #include "itkImageRandomSamplerBase.h"
00019 #include "itkMersenneTwisterRandomVariateGenerator.h"
00020 #include "itkImageFullSampler.h"
00021 
00022 namespace itk
00023 {
00024 
00035   template < class TInputImage >
00036   class ImageRandomSamplerSparseMask :
00037     public ImageRandomSamplerBase< TInputImage >
00038   {
00039   public:
00040 
00042     typedef ImageRandomSamplerSparseMask                Self;
00043     typedef ImageRandomSamplerBase< TInputImage >       Superclass;
00044     typedef SmartPointer<Self>                Pointer;
00045     typedef SmartPointer<const Self>          ConstPointer;
00046 
00048     itkNewMacro( Self );
00049 
00051     itkTypeMacro( ImageRandomSamplerSparseMask, ImageRandomSamplerBase );
00052 
00054     typedef typename Superclass::DataObjectPointer            DataObjectPointer;
00055     typedef typename Superclass::OutputVectorContainerType    OutputVectorContainerType;
00056     typedef typename Superclass::OutputVectorContainerPointer OutputVectorContainerPointer;
00057     typedef typename Superclass::InputImageType               InputImageType;
00058     typedef typename Superclass::InputImagePointer            InputImagePointer;
00059     typedef typename Superclass::InputImageConstPointer       InputImageConstPointer;
00060     typedef typename Superclass::InputImageRegionType         InputImageRegionType;
00061     typedef typename Superclass::InputImagePixelType          InputImagePixelType;
00062     typedef typename Superclass::ImageSampleType              ImageSampleType;
00063     typedef typename Superclass::ImageSampleContainerType     ImageSampleContainerType;
00064     typedef typename Superclass::MaskType                     MaskType;
00065 
00067     itkStaticConstMacro( InputImageDimension, unsigned int,
00068       Superclass::InputImageDimension );
00069 
00071     typedef typename InputImageType::IndexType    InputImageIndexType;
00072     typedef typename InputImageType::PointType    InputImagePointType;
00073 
00075     typedef itk::Statistics::MersenneTwisterRandomVariateGenerator RandomGeneratorType;
00076 
00077   protected:
00078 
00079     typedef itk::ImageFullSampler<InputImageType>           InternalFullSamplerType;
00080 
00082     ImageRandomSamplerSparseMask();
00084     virtual ~ImageRandomSamplerSparseMask() {};
00085 
00087     void PrintSelf( std::ostream& os, Indent indent ) const;
00088 
00090     virtual void GenerateData( void );
00091 
00092     typename RandomGeneratorType::Pointer     m_RandomGenerator;
00093     typename InternalFullSamplerType::Pointer m_InternalFullSampler;
00094 
00095   private:
00096 
00098     ImageRandomSamplerSparseMask( const Self& );          // purposely not implemented
00100     void operator=( const Self& );            // purposely not implemented
00101 
00102 
00103   }; // end class ImageRandomSamplerSparseMask
00104 
00105 
00106 } // end namespace itk
00107 
00108 #ifndef ITK_MANUAL_INSTANTIATION
00109 #include "itkImageRandomSamplerSparseMask.txx"
00110 #endif
00111 
00112 #endif // end #ifndef __ImageRandomSamplerSparseMask_h
00113 


Generated on 24-05-2012 for elastix by doxygen 1.7.6.1 elastix logo