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
44namespace elastix
45{
46
158template< 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{
170public:
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
362protected:
363
368
371
372private:
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.
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
Superclass::InputCovariantVectorType InputCovariantVectorType
Superclass::ParametersType ParametersType
IntermediaryDFTransformType::CoefficientVectorImageType VectorImageType
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.4 elastix logo