go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkCenteredTransformInitializer2.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkCenteredTransformInitializer2.h,v $
5  Language: C++
6  Date: $Date: 2010-07-04 10:30:49 $
7  Version: $Revision: 1.11 $
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 #ifndef __itkCenteredTransformInitializer2_h
18 #define __itkCenteredTransformInitializer2_h
19 
20 #include "itkObject.h"
21 #include "itkObjectFactory.h"
22 #include "itkSpatialObject.h"
23 #include "itkImageMomentsCalculator.h"
24 
25 #include <iostream>
26 
27 namespace itk
28 {
29 
74 template < class TTransform,
75  class TFixedImage,
76  class TMovingImage >
77 class CenteredTransformInitializer2 : public Object
78 {
79 public:
80 
83  typedef Object Superclass;
84  typedef SmartPointer< Self > Pointer;
85  typedef SmartPointer< const Self > ConstPointer;
86 
88  itkNewMacro( Self );
89 
91  itkTypeMacro( CenteredTransformInitializer2, Object );
92 
94  typedef TTransform TransformType;
95  typedef typename TransformType::Pointer TransformPointer;
96 
98  itkStaticConstMacro(InputSpaceDimension, unsigned int,
99  TransformType::InputSpaceDimension);
100  itkStaticConstMacro(OutputSpaceDimension, unsigned int,
101  TransformType::OutputSpaceDimension);
102 
104  typedef TFixedImage FixedImageType;
105  typedef TMovingImage MovingImageType;
106 
107  typedef typename FixedImageType::ConstPointer FixedImagePointer;
108  typedef typename MovingImageType::ConstPointer MovingImagePointer;
109 
110  typedef Image< unsigned char, InputSpaceDimension > FixedImageMaskType;
111  typedef Image< unsigned char, OutputSpaceDimension > MovingImageMaskType;
112  typedef typename FixedImageMaskType::ConstPointer FixedImageMaskPointer;
113  typedef typename MovingImageMaskType::ConstPointer MovingImageMaskPointer;
114 
116  typedef ImageMomentsCalculator< FixedImageType >
118  typedef ImageMomentsCalculator< MovingImageType >
120 
121  typedef typename FixedImageCalculatorType::Pointer
123  typedef typename MovingImageCalculatorType::Pointer
125 
126 
128  typedef typename TransformType::OffsetType OffsetType;
129 
131  typedef typename TransformType::InputPointType InputPointType;
132 
134  typedef typename TransformType::OutputVectorType OutputVectorType;
135 
137  itkSetObjectMacro( Transform, TransformType );
138 
140  itkSetConstObjectMacro( FixedImage, FixedImageType );
141 
143  itkSetConstObjectMacro( MovingImage, MovingImageType );
144 
146  itkSetConstObjectMacro( FixedImageMask, FixedImageMaskType );
147  itkSetConstObjectMacro( MovingImageMask, MovingImageMaskType );
148 
150  virtual void InitializeTransform();
151 
154  void GeometryOn() { m_UseMoments = false; m_UseOrigins = false; m_UseTop = false; }
155  void MomentsOn() { m_UseMoments = true; m_UseOrigins = false; m_UseTop = false; }
156  void OriginsOn() { m_UseMoments = false; m_UseOrigins = true; m_UseTop = false; }
157  void GeometryTopOn() { m_UseMoments = false; m_UseOrigins = false; m_UseTop = true; }
158 
160  itkGetConstObjectMacro( FixedCalculator, FixedImageCalculatorType );
161  itkGetConstObjectMacro( MovingCalculator, MovingImageCalculatorType );
162 
163 protected:
166 
167  void PrintSelf( std::ostream & os, Indent indent ) const;
168 
169  itkGetObjectMacro( Transform, TransformType );
170 
171 private:
172 
173  CenteredTransformInitializer2( const Self & ); // purposely not implemented
174  void operator=( const Self & ); // purposely not implemented
175 
177 
182 
185  bool m_UseTop;
186 
189 
190 };
191 
192 } // namespace itk
193 
194 #ifndef ITK_MANUAL_INSTANTIATION
195 #include "itkCenteredTransformInitializer2.hxx"
196 #endif
197 
198 #endif /* __itkCenteredTransformInitializer2_h */
itkStaticConstMacro(InputSpaceDimension, unsigned int, TransformType::InputSpaceDimension)
FixedImageMaskType::ConstPointer FixedImageMaskPointer
CenteredTransformInitializer2 is a helper class intended to initialize the center of rotation and the...
MovingImageCalculatorType::Pointer MovingImageCalculatorPointer
MovingImageMaskType::ConstPointer MovingImageMaskPointer
void PrintSelf(std::ostream &os, Indent indent) const
TransformType::OutputVectorType OutputVectorType
FixedImageCalculatorType::Pointer FixedImageCalculatorPointer
ImageMomentsCalculator< FixedImageType > FixedImageCalculatorType
ImageMomentsCalculator< MovingImageType > MovingImageCalculatorType
Image< unsigned char, OutputSpaceDimension > MovingImageMaskType
Image< unsigned char, InputSpaceDimension > FixedImageMaskType


Generated on 11-03-2014 for elastix by doxygen 1.8.6 elastix logo