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  * 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 __elxBSplineStackTransform_h
19 #define __elxBSplineStackTransform_h
20 
21 #include "elxIncludes.h" // include first to avoid MSVS warning
22 
26 #include "itkStackTransform.h"
27 
31 
32 namespace elastix
33 {
34 
109 template< class TElastix >
111  public
113  typename elx::TransformBase< TElastix >::CoordRepType,
114  elx::TransformBase< TElastix >::FixedImageDimension >,
115  public
116  TransformBase< TElastix >
117 {
118 public:
119 
126  typedef itk::SmartPointer< Self > Pointer;
127  typedef itk::SmartPointer< const Self > ConstPointer;
128 
130  itkNewMacro( Self );
131 
134 
139  elxClassNameMacro( "BSplineStackTransform" );
140 
142  itkStaticConstMacro( SpaceDimension, unsigned int, Superclass2::FixedImageDimension );
143  itkStaticConstMacro( ReducedSpaceDimension, unsigned int, Superclass2::FixedImageDimension - 1 );
144 
149  typename elx::TransformBase< TElastix >::CoordRepType,
150  itkGetStaticConstMacro( SpaceDimension ) > BSplineTransformBaseType;
152 
155  typename elx::TransformBase< TElastix >::CoordRepType,
156  itkGetStaticConstMacro( ReducedSpaceDimension ) > ReducedDimensionBSplineTransformBaseType;
158 
160  typedef itk::StackTransform<
161  typename elx::TransformBase< TElastix >::CoordRepType,
162  itkGetStaticConstMacro( SpaceDimension ),
163  itkGetStaticConstMacro( SpaceDimension ) > BSplineStackTransformType;
165 
168  typename elx::TransformBase< TElastix >::CoordRepType,
169  itkGetStaticConstMacro( ReducedSpaceDimension ),
172  typename elx::TransformBase< TElastix >::CoordRepType,
173  itkGetStaticConstMacro( ReducedSpaceDimension ),
176  typename elx::TransformBase< TElastix >::CoordRepType,
177  itkGetStaticConstMacro( ReducedSpaceDimension ),
179 
183 
194 
207 
209  typedef itk::Image< PixelType,
210  itkGetStaticConstMacro( ReducedSpaceDimension ) > ReducedDimensionImageType;
211  typedef itk::ImageRegion<
212  itkGetStaticConstMacro( ReducedSpaceDimension ) > ReducedDimensionRegionType;
213  typedef typename ReducedDimensionRegionType::SizeType ReducedDimensionSizeType;
214  typedef typename ReducedDimensionRegionType::IndexType ReducedDimensionIndexType;
215  typedef typename ReducedDimensionImageType::SpacingType ReducedDimensionSpacingType;
216  typedef typename ReducedDimensionImageType::DirectionType ReducedDimensionDirectionType;
217  typedef typename ReducedDimensionImageType::PointType ReducedDimensionOriginType;
218 
221  CoordRepType, ReducedSpaceDimension > GridScheduleComputerType;
223  typedef typename GridScheduleComputerType
228 
234  virtual int BeforeAll( void );
235 
249  virtual void BeforeRegistration( void );
250 
255  virtual void BeforeEachResolution( void );
256 
262  virtual void InitializeTransform( void );
263 
270  virtual void IncreaseScale( void );
271 
273  virtual void ReadFromFile( void );
274 
276  virtual void WriteToFile( const ParametersType & param ) const;
277 
279  virtual void SetOptimizerScales( const unsigned int edgeWidth );
280 
281 protected:
282 
285 
288 
290  virtual void PreComputeGridInformation( void );
291 
292 private:
293 
295  BSplineStackTransform( const Self & ); // purposely not implemented
296  void operator=( const Self & ); // purposely not implemented
297 
299  BSplineStackTransformPointer m_BSplineStackTransform;
301  ReducedDimensionBSplineTransformBasePointer m_BSplineDummySubTransform;
302 
304  GridScheduleComputerPointer m_GridScheduleComputer;
305  GridUpsamplerPointer m_GridUpsampler;
306 
308  unsigned int m_SplineOrder;
309 
313 
315  unsigned int InitializeBSplineTransform();
316 
317 };
318 
319 } // end namespace elastix
320 
321 #ifndef ITK_MANUAL_INSTANTIATION
322 #include "elxBSplineStackTransform.hxx"
323 #endif
324 
325 #endif // end #ifndef __elxBSplineStackTransform_h
This class combines two transforms: an 'initial transform' with a 'current transform'.
Superclass2::ElastixPointer ElastixPointer
Superclass::RegistrationPointer RegistrationPointer
itk::AdvancedBSplineDeformableTransformBase< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(ReducedSpaceDimension) > ReducedDimensionBSplineTransformBaseType
virtual void SetOptimizerScales(const unsigned int edgeWidth)
virtual void IncreaseScale(void)
Deformable transform using a B-spline representation.
BSplineTransformBaseType::SpacingType SpacingType
ReducedDimensionRegionType::IndexType ReducedDimensionIndexType
elx::TransformBase< TElastix > Superclass2
void operator=(const Self &)
itk::Image< PixelType, itkGetStaticConstMacro(ReducedSpaceDimension) > ReducedDimensionImageType
itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(ReducedSpaceDimension), 2 > BSplineTransformQuadraticType
BSplineTransformBaseType::ImagePointer ImagePointer
BSplineTransformBaseType::RegionType RegionType
itk::GridScheduleComputer< CoordRepType, ReducedSpaceDimension > GridScheduleComputerType
A B-spline transform based on the itkStackTransform.
Superclass2::ConfigurationType ConfigurationType
Superclass2::MovingImageType MovingImageType
itk::SmartPointer< const Self > ConstPointer
ImageRegion< itkGetStaticConstMacro(SpaceDimension) > RegionType
std::vector< GridSpacingFactorType > VectorGridSpacingFactorType
BSplineTransformBaseType::PixelType PixelType
BSplineStackTransformType::Pointer BSplineStackTransformPointer
Superclass2::CoordRepType CoordRepType
Superclass2::RegistrationPointer RegistrationPointer
itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(ReducedSpaceDimension), 1 > BSplineTransformLinearType
virtual void BeforeRegistration(void)
Implements stack of transforms: one for every last dimension index.
elxClassNameMacro("BSplineStackTransform")
itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(ReducedSpaceDimension), 3 > BSplineTransformCubicType
ElastixType::FixedImageType FixedImageType
virtual void PreComputeGridInformation(void)
virtual void WriteToFile(void) const
This class computes all information about the B-spline grid, given the image information and the desi...
BSplineTransformBaseType::Pointer BSplineTransformBasePointer
Superclass::ElastixType ElastixType
Transform maps points, vectors and covariant vectors from an input space to an output space...
unsigned int InitializeBSplineTransform()
Superclass2::ConfigurationPointer ConfigurationPointer
BSplineTransformBaseType::DirectionType DirectionType
BSplineTransformBaseType::OriginType OriginType
itk::StackTransform< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SpaceDimension) > BSplineStackTransformType
ReducedDimensionBSplineTransformBasePointer m_BSplineDummySubTransform
ReducedDimensionImageType::PointType ReducedDimensionOriginType
Superclass1::NumberOfParametersType NumberOfParametersType
GridScheduleComputerPointer m_GridScheduleComputer
BSplineTransformBaseType::ImageType ImageType
ElastixType::MovingImageType MovingImageType
itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension > Superclass1
Superclass1::ParametersType ParametersType
Superclass::ElastixPointer ElastixPointer
ElastixType::CoordRepType CoordRepType
Superclass::RegistrationType RegistrationType
ReducedDimensionImageType::DirectionType ReducedDimensionDirectionType
itk::ImageRegion< itkGetStaticConstMacro(ReducedSpaceDimension) > ReducedDimensionRegionType
virtual void ReadFromFile(void)
BSplineTransformBaseType::SizeType SizeType
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
itk::AdvancedBSplineDeformableTransformBase< typename elx::TransformBase< TElastix >::CoordRepType, itkGetStaticConstMacro(SpaceDimension) > BSplineTransformBaseType
BSplineStackTransformPointer m_BSplineStackTransform
Superclass::NumberOfParametersType NumberOfParametersType
Superclass2::RegistrationType RegistrationType
BSplineTransformBaseType::IndexType IndexType
This class is the elastix base class for all Transforms.
Superclass::ConfigurationType ConfigurationType
GridUpsamplerType::Pointer GridUpsamplerPointer
Superclass2::CombinationTransformType CombinationTransformType
Convenience class for upsampling a B-spline coefficient image.
Superclass::ConfigurationPointer ConfigurationPointer
virtual void BeforeEachResolution(void)
GridScheduleComputerType::VectorGridSpacingFactorType GridScheduleType
Base class for deformable transform using a B-spline representation.
ReducedDimensionBSplineTransformBaseType::Pointer ReducedDimensionBSplineTransformBasePointer
ReducedDimensionImageType::SpacingType ReducedDimensionSpacingType
Superclass2::FixedImageType FixedImageType
GridScheduleComputerType::Pointer GridScheduleComputerPointer
ReducedDimensionRegionType::SizeType ReducedDimensionSizeType
itk::UpsampleBSplineParametersFilter< ParametersType, ReducedDimensionImageType > GridUpsamplerType
virtual void InitializeTransform(void)


Generated on 04-09-2015 for elastix by doxygen 1.8.9.1 elastix logo