go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxBSplineTransformWithDiffusion.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 __elxBSplineTransformWithDiffusion_H__
19 #define __elxBSplineTransformWithDiffusion_H__
20 
21 /* For easy changing the BSplineOrder: */
22 #define __VSplineOrder 3
23 
24 #include "elxIncludes.h" // include first to avoid MSVS warning
27 //#include "itkBSplineCombinationTransform.h"
28 #include "itkBSplineResampleImageFilterBase.h"
29 #include "itkBSplineUpsampleImageFilter.h"
30 
31 #include "itkImageRegionConstIterator.h"
32 
36 #include "itkImageFileReader.h"
37 #include "itkImageFileWriter.h"
38 #include "itkResampleImageFilter.h"
39 #include "itkCastImageFilter.h"
40 #include "itkMaximumImageFilter.h"
41 #include "itkImageRegionIterator.h"
42 #include "itkBSplineInterpolateImageFunction.h"
43 
44 namespace elastix
45 {
46 
158 template< class TElastix >
160  public
162  itk::AdvancedCombinationTransform<
163  //BSplineCombinationTransform<
164  typename elx::TransformBase< TElastix >::CoordRepType,
165  elx::TransformBase< TElastix >::FixedImageDimension > >,
166  //elx::TransformBase<TElastix>::FixedImageDimension, __VSplineOrder > >,
167  public
168  TransformBase< TElastix >
169 {
170 public:
171 
176  //BSplineCombinationTransform<
179  //elx::TransformBase<TElastix>::FixedImageDimension, __VSplineOrder > >
182 
190 
191  typedef itk::SmartPointer< Self > Pointer;
192  typedef itk::SmartPointer< const Self > ConstPointer;
193 
195  itkNewMacro( Self );
196 
199 
204  elxClassNameMacro( "BSplineTransformWithDiffusion" );
205 
207  itkStaticConstMacro( SpaceDimension, unsigned int, Superclass2::FixedImageDimension );
208 
210  itkStaticConstMacro( SplineOrder, unsigned int, __VSplineOrder );
211 
224 
226  typedef typename BSplineTransformType::PixelType PixelType;
238 
251 
255  typedef typename VectorImageType::Pointer VectorImagePointer;
256 
258  typedef typename ElastixType::FixedImageType FixedImageELXType;
259  typedef typename ElastixType::MovingImageType MovingImageELXType;
260 
262  typedef itk::Image< short,
263  itkGetStaticConstMacro( SpaceDimension ) > DummyImageType;
264  typedef itk::ImageRegionConstIterator<
268 
270  typedef itk::ImageFileReader< VectorImageType > VectorReaderType;
271  typedef typename VectorImageType::PixelType VectorType;
272  typedef itk::ImageRegionIterator<
275  typedef typename GrayValueImageType::Pointer GrayValueImagePointer;
276  typedef typename GrayValueImageType::PixelType GrayValuePixelType;
277  typedef itk::ImageRegionIterator<
279  typedef itk::MaximumImageFilter<
285  typedef typename VectorImageType::SizeType RadiusType;
286  typedef itk::ResampleImageFilter<
289  typedef typename ResamplerType1::Pointer ResamplerPointer1;
290  typedef itk::ResampleImageFilter<
293  typedef typename ResamplerType2::Pointer ResamplerPointer2;
294  typedef itk::BSplineInterpolateImageFunction<
296  typedef typename InterpolatorType::Pointer InterpolatorPointer;
297  typedef itk::ImageFileReader< GrayValueImageType > GrayValueImageReaderType;
298  typedef typename GrayValueImageReaderType::Pointer GrayValueImageReaderPointer;
299  typedef itk::ImageFileWriter< GrayValueImageType > GrayValueImageWriterType;
300  typedef itk::ImageFileWriter< VectorImageType > DeformationFieldWriterType;
301 
307  void BeforeRegistration( void ) override;
308 
312  void BeforeEachResolution( void ) override;
313 
317  void AfterEachIteration( void ) override;
318 
322  void AfterRegistration( void ) override;
323 
325  virtual void SetInitialGrid( bool upsampleGridOption );
326 
328  virtual void IncreaseScale( void );
329 
331  void ReadFromFile( void ) override;
332 
334  void WriteToFile( const ParametersType & param ) const override;
335 
338 
349  OutputPointType TransformPoint( const InputPointType & point ) const override;
350 
362 protected:
363 
368 
371 
372 private:
373 
375  BSplineTransformWithDiffusion( const Self & ); // purposely not implemented
377  void operator=( const Self & ); // purposely not implemented
378 
397 
405 
408 
413 
414 };
415 
416 } // end namespace elastix
417 
418 #ifndef ITK_MANUAL_INSTANTIATION
419 #include "elxBSplineTransformWithDiffusion.hxx"
420 #endif
421 
422 #endif // end #ifndef __elxBSplineTransformWithDiffusion_H__
This class combines a B-spline transform with the diffusion/filtering of the deformation field.
itkStaticConstMacro(SplineOrder, unsigned int, __VSplineOrder)
Superclass2::ConfigurationPointer ConfigurationPointer
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
itk::ImageFileWriter< VectorImageType > DeformationFieldWriterType
itk::ImageFileWriter< GrayValueImageType > GrayValueImageWriterType
Superclass1::IntermediaryDFTransformType IntermediaryDFTransformType
void BeforeEachResolution(void) override
itk::ImageRegionIterator< VectorImageType > VectorImageIteratorType
itk::AdvancedBSplineDeformableTransform< typename elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension, __VSplineOrder > BSplineTransformType
itk::BSplineInterpolateImageFunction< GrayValueImageType > InterpolatorType
GrayValueImageReaderType::Pointer GrayValueImageReaderPointer
itk::MaximumImageFilter< GrayValueImageType, GrayValueImageType, GrayValueImageType > MaximumImageFilterType
itk::ImageRegionConstIterator< DummyImageType > DummyIteratorType
OutputPointType TransformPoint(const InputPointType &point) const override
itk::ImageRegionIterator< GrayValueImageType > GrayValueImageIteratorType
virtual void SetInitialGrid(bool upsampleGridOption)
void WriteToFile(const ParametersType &param) const override
itk::ImageFileReader< GrayValueImageType > GrayValueImageReaderType
elxClassNameMacro("BSplineTransformWithDiffusion")
itk::DeformationFieldRegulizer< itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension > > Superclass1
itk::VectorMeanDiffusionImageFilter< VectorImageType, GrayValueImageType > DiffusionFilterType
itk::Image< short, itkGetStaticConstMacro(SpaceDimension) > DummyImageType
Superclass1::InputCovariantVectorType InputCovariantVectorType
BSplineTransformType::WeightsFunctionType WeightsFunctionType
BSplineTransformType::ParameterIndexArrayType ParameterIndexArrayType
itk::ImageFileReader< VectorImageType > VectorReaderType
itk::ResampleImageFilter< MovingImageELXType, GrayValueImageType, CoordRepType > ResamplerType1
itk::ResampleImageFilter< GrayValueImageType, GrayValueImageType, CoordRepType > ResamplerType2
BSplineTransformType::ContinuousIndexType ContinuousIndexType
Superclass1::OutputCovariantVectorType OutputCovariantVectorType
Superclass2::CombinationTransformType CombinationTransformType
A class that deals with user given parameters and command line arguments.
This class is the elastix base class for all Transforms.
Configuration::Pointer ConfigurationPointer
ElastixType::FixedImageType FixedImageType
itk::WeakPointer< ElastixType > ElastixPointer
RegistrationType * RegistrationPointer
ElastixType::MovingImageType MovingImageType
ElastixType::CoordRepType CoordRepType
ElastixType::RegistrationBaseType RegistrationType
Deformable transform using a B-spline representation.
WeightsFunctionType::ContinuousIndexType ContinuousIndexType
This class combines two transforms: an 'initial transform' with a 'current transform'.
Transform maps points, vectors and covariant vectors from an input space to an output space.
Superclass::ParametersType ParametersType
Superclass::OutputPointType OutputPointType
Superclass::InputPointType InputPointType
Returns the weights over the support region used for B-spline interpolation/reconstruction.
This class combines any itk transform with the DeformationFieldTransform.
Superclass::OutputCovariantVectorType OutputCovariantVectorType
Superclass::InputVectorType InputVectorType
IntermediaryDFTransformType ::CoefficientVectorImageType VectorImageType
Superclass::InputCovariantVectorType InputCovariantVectorType
Superclass::ParametersType ParametersType
Superclass::InputVnlVectorType InputVnlVectorType
Superclass::OutputVnlVectorType OutputVnlVectorType
Superclass::InputPointType InputPointType
Superclass::OutputVectorType OutputVectorType
Superclass::OutputPointType OutputPointType
An itk transform based on a DeformationVectorField.
Applies an averaging filter to an image.
#define __VSplineOrder


Generated on 1667476801 for elastix by doxygen 1.9.1 elastix logo