go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkVectorMeanDiffusionImageFilter.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 __itkVectorMeanDiffusionImageFilter_H__
00016 #define __itkVectorMeanDiffusionImageFilter_H__
00017 
00018 #include "itkImageToImageFilter.h"
00019 #include "itkImage.h"
00020 #include "itkVector.h"
00021 #include "itkNumericTraits.h"
00022 
00023 #include "itkRescaleIntensityImageFilter.h"
00024 
00025 namespace itk
00026 {
00044 template <class TInputImage, class TGrayValueImage >
00045 class ITK_EXPORT VectorMeanDiffusionImageFilter
00046   : public ImageToImageFilter< TInputImage, TInputImage >
00047 {
00048 public:
00049 
00051   typedef TInputImage         InputImageType;
00052   typedef TGrayValueImage     GrayValueImageType;
00053 
00055   typedef VectorMeanDiffusionImageFilter      Self;
00056   typedef ImageToImageFilter<
00057     InputImageType, InputImageType >          Superclass;
00058   typedef SmartPointer< Self >                Pointer;
00059   typedef SmartPointer< const Self >          ConstPointer;
00060 
00062   itkStaticConstMacro( InputImageDimension, unsigned int,
00063     TInputImage::ImageDimension );
00064 
00066   itkNewMacro( Self );
00067 
00069   itkTypeMacro( VectorMeanDiffusionImageFilter, ImageToImageFilter );
00070 
00072   typedef typename InputImageType::PixelType        InputPixelType;
00073   typedef typename InputPixelType::ValueType        ValueType;
00074   //typedef typename NumericTraits<InputPixelType>::RealType    InputRealType;
00075   typedef typename InputImageType::RegionType       InputImageRegionType;
00076   typedef typename InputImageType::SizeType         InputSizeType;
00077   typedef typename InputImageType::IndexType        IndexType;
00078   typedef Vector< double,
00079     itkGetStaticConstMacro( InputImageDimension ) > VectorRealType;
00080   typedef Image< double,
00081     itkGetStaticConstMacro( InputImageDimension ) > DoubleImageType;
00082   typedef typename GrayValueImageType::PixelType    GrayValuePixelType;
00083 
00085   typedef RescaleIntensityImageFilter<
00086     GrayValueImageType, DoubleImageType >           RescaleImageFilterType;
00087 
00089   itkSetMacro( Radius, InputSizeType );
00090 
00092   itkGetConstReferenceMacro( Radius, InputSizeType );
00093 
00101   virtual void GenerateInputRequestedRegion() throw( InvalidRequestedRegionError );
00102 
00104   itkSetMacro( NumberOfIterations, unsigned int );
00105   itkGetConstMacro( NumberOfIterations, unsigned int );
00106 
00108   void SetGrayValueImage( GrayValueImageType * _arg );
00109   typename GrayValueImageType::Pointer GetGrayValueImage( void )
00110   {
00111     return this->m_GrayValueImage.GetPointer();
00112   }
00113 
00114 protected:
00115 
00116   VectorMeanDiffusionImageFilter();
00117   virtual ~VectorMeanDiffusionImageFilter() {}
00118 
00119   void PrintSelf( std::ostream& os, Indent indent ) const;
00120 
00132   void GenerateData( void );
00133 
00134 private:
00135 
00136   VectorMeanDiffusionImageFilter( const Self& );  // purposely not implemented
00137   void operator=( const Self& );                  // purposely not implemented
00138 
00140   InputSizeType   m_Radius;
00141   unsigned int    m_NumberOfIterations;
00142 
00144   typename GrayValueImageType::Pointer    m_GrayValueImage;
00145   typename DoubleImageType::Pointer       m_Cx;
00146 
00147   typename RescaleImageFilterType::Pointer  m_RescaleFilter;
00148 
00150   void FilterGrayValueImage( void );
00151 
00152 }; // end class VectorMeanDiffusionImageFilter
00153 
00154 } // end namespace itk
00155 
00156 #ifndef ITK_MANUAL_INSTANTIATION
00157 #include "itkVectorMeanDiffusionImageFilter.hxx"
00158 #endif
00159 
00160 #endif // end #ifndef __itkVectorMeanDiffusionImageFilter_H__
00161 


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