Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkComplexBSplineInterpolateImageFunction.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Insight Segmentation & Registration Toolkit
00004   Module:    $RCSfile: itkComplexBSplineInterpolateImageFunction.h,v $
00005   Language:  C++
00006   Date:      $Date: 2009-05-15 20:10:02 $
00007   Version:   $Revision: 1.2 $
00008 
00009   Copyright ( c ) Insight Software Consortium. All rights reserved.
00010   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
00011 
00012      This software is distributed WITHOUT ANY WARRANTY; without even
00013      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00014      PURPOSE.  See the above copyright notices for more information.
00015 
00016 =========================================================================*/
00017 
00018 #ifndef __itkComplexBSplineInterpolateImageFunction_h
00019 #define __itkComplexBSplineInterpolateImageFunction_h
00020 
00021 #include "itkInterpolateImageFunction.h"
00022 #include "itkBSplineInterpolateImageFunction.h"
00023 #include "itkComplexToRealImageFilter.h"
00024 #include "itkComplexToImaginaryImageFilter.h"
00025 
00026 namespace itk {
00042  template< class TImageType, class TCoordRep = double, class TCoefficientType = double >
00043  class ITK_EXPORT ComplexBSplineInterpolateImageFunction : 
00044   public InterpolateImageFunction< TImageType, TCoordRep > 
00045 {
00046 public:
00047 
00049   typedef ComplexBSplineInterpolateImageFunction       Self;
00050 
00052   typedef InterpolateImageFunction< TImageType, TCoordRep >  Superclass;
00053 
00055   typedef SmartPointer< Self >                    Pointer;
00056 
00058   typedef SmartPointer< const Self >              ConstPointer;
00059 
00061     itkTypeMacro( ComplexBSplineInterpolateImageFunction, InterpolateImageFunction );
00062 
00063  
00065   itkNewMacro( Self );
00066 
00068   itkStaticConstMacro( ImageDimension, unsigned int,Superclass::ImageDimension );
00069 
00071   typedef typename Superclass::OutputType OutputType;
00072 
00074   typedef typename Superclass::InputImageType InputImageType;
00075 
00077   typedef typename Superclass::IndexType IndexType;
00078 
00080   typedef typename Superclass::ContinuousIndexType ContinuousIndexType;
00081 
00083   typedef typename Superclass::PointType PointType;
00084 
00086   typedef Image< double, itkGetStaticConstMacro( ImageDimension ) > InternalImageType;
00087 
00089   typedef ComplexToRealImageFilter< InputImageType, InternalImageType > RealFilterType;
00090   typedef ComplexToImaginaryImageFilter< InputImageType, InternalImageType > ImaginaryFilterType;
00091 
00093   typedef BSplineInterpolateImageFunction< InternalImageType, TCoordRep, TCoefficientType > InterpolatorType;
00094 
00095 
00096   
00105   virtual OutputType EvaluateAtContinuousIndex( const ContinuousIndexType & index ) const; 
00106 
00108 /*  typedef CovariantVector< OutputType, itkGetStaticConstMacro( ImageDimension ) > CovariantVectorType;
00109 
00110   CovariantVectorType EvaluateDerivative( const PointType & point ) const
00111   {
00112    ContinuousIndexType index;
00113    this->GetInputImage()->TransformPhysicalPointToContinuousIndex( point, index );
00114    return ( this->EvaluateDerivativeAtContinuousIndex( index ) );
00115   } 
00116 
00117   CovariantVectorType EvaluateDerivativeAtContinuousIndex( const ContinuousIndexType & x ) const;
00118 */
00119 
00122   void SetSplineOrder( unsigned int SplineOrder );
00123   itkGetConstMacro( SplineOrder, int );
00125 
00127   virtual void SetInputImage(const TImageType * inputData);
00128 
00129   
00130 protected:
00131   ComplexBSplineInterpolateImageFunction();
00132   virtual ~ComplexBSplineInterpolateImageFunction() {};
00133   void operator=( const Self& ); //purposely not implemented
00134   void PrintSelf(std::ostream& os, Indent indent) const;
00135   
00136   
00137 private:
00138   ComplexBSplineInterpolateImageFunction( const Self& ); //purposely not implemented
00139   
00140   
00141   unsigned int                          m_SplineOrder;
00142   typename InterpolatorType::Pointer    m_RealInterpolator;
00143   typename InterpolatorType::Pointer    m_ImaginaryInterpolator;
00144   typename RealFilterType::Pointer      m_RealFilter;
00145   typename ImaginaryFilterType::Pointer m_ImaginaryFilter;
00146   
00147 }; // class
00148 
00149 
00150 } // namespace
00151 
00152 
00153 #ifndef ITK_MANUAL_INSTANTIATION
00154 #include "itkComplexBSplineInterpolateImageFunction.txx"
00155 #endif
00156 
00157 #endif
00158 

Generated at Tue Sep 15 02:35:28 2009 for ITK by doxygen 1.5.8 written by Dimitri van Heesch, © 1997-2000