go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxRecursiveBSplineTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright UMC Utrecht and contributors
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef __elxRecursiveBSplineTransform_h
19 #define __elxRecursiveBSplineTransform_h
20 
21 #include "elxIncludes.h" // include first to avoid MSVS warning
24 
29 
30 namespace elastix
31 {
108 template< class TElastix >
111  typename elx::TransformBase< TElastix >::CoordRepType,
112  elx::TransformBase< TElastix >::FixedImageDimension >,
113  public TransformBase< TElastix >
114 {
115 public:
116 
123  typedef itk::SmartPointer< Self > Pointer;
124  typedef itk::SmartPointer< const Self > ConstPointer;
125 
127  itkNewMacro( Self );
128 
131 
136  elxClassNameMacro( "RecursiveBSplineTransform" );
137 
139  itkStaticConstMacro( SpaceDimension, unsigned int, Superclass2::FixedImageDimension );
140 
145  typename elx::TransformBase< TElastix >::CoordRepType,
146  itkGetStaticConstMacro( SpaceDimension ) > BSplineTransformBaseType;
148 
151  typename elx::TransformBase< TElastix >::CoordRepType,
152  itkGetStaticConstMacro( SpaceDimension ),
155  typename elx::TransformBase< TElastix >::CoordRepType,
156  itkGetStaticConstMacro( SpaceDimension ),
159  typename elx::TransformBase< TElastix >::CoordRepType,
160  itkGetStaticConstMacro( SpaceDimension ),
163  typename elx::TransformBase< TElastix >::CoordRepType,
164  itkGetStaticConstMacro( SpaceDimension ),
167  typename elx::TransformBase< TElastix >::CoordRepType,
168  itkGetStaticConstMacro( SpaceDimension ),
171  typename elx::TransformBase< TElastix >::CoordRepType,
172  itkGetStaticConstMacro( SpaceDimension ),
174 
188 
199  typedef typename
201  typedef typename
203 
216 
219  CoordRepType, SpaceDimension > GridScheduleComputerType;
221  CoordRepType, SpaceDimension > CyclicGridScheduleComputerType;
223  typedef typename GridScheduleComputerType
228 
231 
236  virtual int BeforeAll( void );
237 
249  virtual void BeforeRegistration( void );
250 
255  virtual void BeforeEachResolution( void );
256 
262  virtual void InitializeTransform( void );
263 
269  virtual void IncreaseScale( void );
270 
272  virtual void ReadFromFile( void );
273 
275  virtual void WriteToFile( const ParametersType & param ) const;
276 
281  virtual void CreateTransformParametersMap(
282  const ParametersType & param, ParameterMapType * paramsMap ) const;
283 
285  virtual void SetOptimizerScales( const unsigned int edgeWidth );
286 
287 protected:
288 
291 
294 
296  virtual void PreComputeGridInformation( void );
297 
298 private:
299 
301  RecursiveBSplineTransform( const Self & ); // purposely not implemented
303  void operator=( const Self & ); // purposely not implemented
304 
306  BSplineTransformBasePointer m_BSplineTransform;
307  GridScheduleComputerPointer m_GridScheduleComputer;
308  GridUpsamplerPointer m_GridUpsampler;
309 
311  unsigned int m_SplineOrder;
312  bool m_Cyclic;
313 
315  unsigned int InitializeBSplineTransform();
316 
317 };
318 
319 } // end namespace elastix
320 
321 #ifndef ITK_MANUAL_INSTANTIATION
322 #include "elxRecursiveBSplineTransform.hxx"
323 #endif
324 
325 #endif // end #ifndef __elxRecursiveBSplineTransform_h
This class combines two transforms: an &#39;initial transform&#39; with a &#39;current transform&#39;.
virtual void WriteToFile(const ParametersType &param) const
BSplineTransformBaseType::ParameterIndexArrayType ParameterIndexArrayType
itkStaticConstMacro(SpaceDimension, unsigned int, NDimensions)
Superclass::InputCovariantVectorType InputCovariantVectorType
Superclass2::RegistrationPointer RegistrationPointer
BSplineTransformBaseType::IndexType IndexType
Superclass::RegistrationPointer RegistrationPointer
GridScheduleComputerType ::VectorGridSpacingFactorType GridScheduleType
Superclass::OutputCovariantVectorType OutputCovariantVectorType
BSplineTransformBaseType::PixelType PixelType
Superclass2::RegistrationType RegistrationType
#define elxClassNameMacro(_name)
Definition: elxMacro.h:262
virtual void InitializeTransform(void)
Superclass1::InputVnlVectorType InputVnlVectorType
itk::RecursiveBSplineTransform< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(SpaceDimension), 2 > BSplineTransformQuadraticType
ElastixType::ParameterMapType ParameterMapType
itk::UpsampleBSplineParametersFilter< ParametersType, ImageType > GridUpsamplerType
BSplineTransformBaseType::ContinuousIndexType ContinuousIndexType
itk::RecursiveBSplineTransform< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(SpaceDimension), 3 > BSplineTransformCubicType
ImageRegion< itkGetStaticConstMacro(SpaceDimension) > RegionType
Superclass2::ConfigurationType ConfigurationType
itk::SmartPointer< const Self > ConstPointer
std::vector< GridSpacingFactorType > VectorGridSpacingFactorType
Superclass1::OutputCovariantVectorType OutputCovariantVectorType
Superclass1::OutputVnlVectorType OutputVnlVectorType
BSplineTransformBaseType::SpacingType SpacingType
Superclass2::CombinationTransformType CombinationTransformType
virtual void SetOptimizerScales(const unsigned int edgeWidth)
itk::RecursiveBSplineTransform< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(SpaceDimension), 1 > BSplineTransformLinearType
GridScheduleComputerType::Pointer GridScheduleComputerPointer
Superclass1::NumberOfParametersType NumberOfParametersType
ElastixType::FixedImageType FixedImageType
itk::CyclicBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(SpaceDimension), 3 > CyclicBSplineTransformCubicType
Superclass::ParametersType ParametersType
Deformable transform using a B-spline representation in which the B-spline grid is formulated in a cy...
This class computes all information about the B-spline grid, given the image information and the desi...
BSplineTransformBaseType::SizeType SizeType
Superclass::ElastixType ElastixType
virtual void BeforeEachResolution(void)
itk::CyclicGridScheduleComputer< CoordRepType, SpaceDimension > CyclicGridScheduleComputerType
Transform maps points, vectors and covariant vectors from an input space to an output space...
BSplineTransformBaseType::ImageType ImageType
Superclass2::ConfigurationPointer ConfigurationPointer
itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension > Superclass1
elx::TransformBase< TElastix > Superclass2
itk::CyclicBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(SpaceDimension), 1 > CyclicBSplineTransformLinearType
virtual void PreComputeGridInformation(void)
BSplineTransformBaseType::RegionType RegionType
A recursive implementation of the B-spline transform.
ElastixType::MovingImageType MovingImageType
BSplineTransformBaseType::OriginType OriginType
Superclass::ElastixPointer ElastixPointer
ElastixType::CoordRepType CoordRepType
Superclass::RegistrationType RegistrationType
BSplineTransformBaseType::ImagePointer ImagePointer
itk::AdvancedBSplineDeformableTransformBase< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(SpaceDimension) > BSplineTransformBaseType
This class computes all information about the B-spline grid.
Superclass1::OutputVectorType OutputVectorType
Superclass::NumberOfParametersType NumberOfParametersType
BSplineTransformBaseType::Pointer BSplineTransformBasePointer
ContinuousIndex< ScalarType, SpaceDimension > ContinuousIndexType
This class is the elastix base class for all Transforms.
itk::GridScheduleComputer< CoordRepType, SpaceDimension > GridScheduleComputerType
Superclass::ConfigurationType ConfigurationType
Superclass::OutputVnlVectorType OutputVnlVectorType
Convenience class for upsampling a B-spline coefficient image.
Superclass::ConfigurationPointer ConfigurationPointer
itk::CyclicBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(SpaceDimension), 2 > CyclicBSplineTransformQuadraticType
Superclass::InputVnlVectorType InputVnlVectorType
virtual void BeforeRegistration(void)
Base class for deformable transform using a B-spline representation.
Superclass1::InputCovariantVectorType InputCovariantVectorType
Superclass2::ParameterMapType ParameterMapType
void operator=(const Self &)
BSplineTransformBaseType::DirectionType DirectionType
virtual void CreateTransformParametersMap(const ParametersType &param, ParameterMapType *paramsMap) const
GridScheduleComputerPointer m_GridScheduleComputer


Generated on OURCE_DATE_EPOCH for elastix by doxygen 1.8.13 elastix logo