go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxBSplineStackTransform.h
Go to the documentation of this file.
1 /*======================================================================
2 
3  This file is part of the elastix software.
4 
5  Copyright (c) University Medical Center Utrecht. All rights reserved.
6  See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7  details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notices for more information.
12 
13 ======================================================================*/
14 #ifndef __elxBSplineStackTransform_h
15 #define __elxBSplineStackTransform_h
16 
20 #include "itkStackTransform.h"
21 
25 
26 #include "elxIncludes.h"
27 
28 
29 namespace elastix
30 {
31 using namespace itk;
32 
107 template < class TElastix >
109  : public
111  ITK_TYPENAME elx::TransformBase<TElastix>::CoordRepType,
112  elx::TransformBase<TElastix>::FixedImageDimension > ,
113  public
114  TransformBase<TElastix>
115 {
116 public:
117 
124  typedef SmartPointer<Self> Pointer;
125  typedef SmartPointer<const Self> ConstPointer;
126 
128  itkNewMacro( Self );
129 
132 
137  elxClassNameMacro( "BSplineStackTransform" );
138 
140  itkStaticConstMacro( SpaceDimension, unsigned int, Superclass2::FixedImageDimension );
141  itkStaticConstMacro( ReducedSpaceDimension, unsigned int, Superclass2::FixedImageDimension - 1 );
142 
148  itkGetStaticConstMacro( SpaceDimension ) > BSplineTransformBaseType;
150 
154  itkGetStaticConstMacro( ReducedSpaceDimension ) > ReducedDimensionBSplineTransformBaseType;
156 
158  typedef itk::StackTransform<
160  itkGetStaticConstMacro( SpaceDimension ),
161  itkGetStaticConstMacro( SpaceDimension ) > BSplineStackTransformType;
163 
167  itkGetStaticConstMacro( ReducedSpaceDimension ),
171  itkGetStaticConstMacro( ReducedSpaceDimension ),
175  itkGetStaticConstMacro( ReducedSpaceDimension ),
177 
180 
191 
204 
206  typedef Image< PixelType,
207  itkGetStaticConstMacro( ReducedSpaceDimension )> ReducedDimensionImageType;
208  typedef ImageRegion<
209  itkGetStaticConstMacro( ReducedSpaceDimension ) > ReducedDimensionRegionType;
210  typedef typename ReducedDimensionRegionType::SizeType ReducedDimensionSizeType;
211  typedef typename ReducedDimensionRegionType::IndexType ReducedDimensionIndexType;
212  typedef typename ReducedDimensionImageType::SpacingType ReducedDimensionSpacingType;
213  typedef typename ReducedDimensionImageType::DirectionType ReducedDimensionDirectionType;
214  typedef typename ReducedDimensionImageType::PointType ReducedDimensionOriginType;
215 
217  typedef GridScheduleComputer<
218  CoordRepType, ReducedSpaceDimension > GridScheduleComputerType;
220  typedef typename GridScheduleComputerType
225 
231  virtual int BeforeAll( void );
232 
246  virtual void BeforeRegistration( void );
247 
252  virtual void BeforeEachResolution( void );
253 
259  virtual void InitializeTransform( void );
260 
267  virtual void IncreaseScale( void );
268 
270  virtual void ReadFromFile( void );
271 
273  virtual void WriteToFile( const ParametersType & param ) const;
274 
276  virtual void SetOptimizerScales( const unsigned int edgeWidth );
277 
278 protected:
279 
282 
285 
287  virtual void PreComputeGridInformation( void );
288 
289 private:
290 
292  BSplineStackTransform( const Self& ); // purposely not implemented
293  void operator=( const Self& ); // purposely not implemented
294 
299 
303 
305  unsigned int m_SplineOrder;
306 
309  double m_StackOrigin, m_StackSpacing;
310 
312  unsigned int InitializeBSplineTransform();
313 
314 }; // end class BSplineStackTransform
315 
316 
317 } // end namespace elastix
318 
319 #ifndef ITK_MANUAL_INSTANTIATION
320 #include "elxBSplineStackTransform.hxx"
321 #endif
322 
323 #endif // end #ifndef __elxBSplineStackTransform_h
324 


Generated on 27-06-2013 for elastix by doxygen 1.8.3.1 elastix logo