go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxRegistrationBase.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 elxRegistrationBase_h
19#define elxRegistrationBase_h
20
22#include "elxMacro.h"
23
24#include "elxBaseComponentSE.h"
26
28#include "itkImageMaskSpatialObject.h"
30
31namespace elastix
32{
33
74template <class TElastix>
75class ITK_TEMPLATE_EXPORT RegistrationBase : public BaseComponentSE<TElastix>
76{
77public:
79
83
86
88 using typename Superclass::ElastixType;
89 using typename Superclass::RegistrationType;
90
92 using FixedImageType = typename ElastixType::FixedImageType;
93 using MovingImageType = typename ElastixType::MovingImageType;
94
96 itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension);
98 itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension);
99
102
104 using UseMaskErosionArrayType = std::vector<bool>;
105
109 {
110 return &(this->GetSelf());
111 }
112
113
115 const ITKBaseType *
117 {
118 return &(this->GetSelf());
119 }
120
121
142 virtual bool
144 const unsigned int nrOfMasks,
145 const std::string & whichMask,
146 const unsigned int level) const;
147
148protected:
150 RegistrationBase() = default;
152 ~RegistrationBase() override = default;
153
155 using MaskPixelType = typename ElastixType::MaskPixelType;
156 using FixedMaskImageType = typename ElastixType::FixedMaskType;
157 using MovingMaskImageType = typename ElastixType::MovingMaskType;
158 using FixedMaskImagePointer = typename FixedMaskImageType::Pointer;
159 using MovingMaskImagePointer = typename MovingMaskImageType::Pointer;
160 using FixedMaskSpatialObjectType = itk::ImageMaskSpatialObject<Self::FixedImageDimension>;
161 using MovingMaskSpatialObjectType = itk::ImageMaskSpatialObject<Self::MovingImageDimension>;
162 using FixedMaskSpatialObjectPointer = typename FixedMaskSpatialObjectType::Pointer;
163 using MovingMaskSpatialObjectPointer = typename MovingMaskSpatialObjectType::Pointer;
164
167
173
188 bool useMaskErosion,
189 const FixedImagePyramidType * pyramid,
190 unsigned int level) const;
191
206 bool useMaskErosion,
207 const MovingImagePyramidType * pyramid,
208 unsigned int level) const;
209
210private:
212};
213
214} // end namespace elastix
215
216#ifndef ITK_MANUAL_INSTANTIATION
217# include "elxRegistrationBase.hxx"
218#endif
219
220#endif // end #ifndef elxRegistrationBase_h
The BaseComponentSE class is a base class for elastix components that provides some basic functionali...
typename ElastixType::RegistrationBaseType RegistrationType
This class is the elastix base class for all Registration schemes.
FixedMaskSpatialObjectPointer GenerateFixedMaskSpatialObject(const FixedMaskImageType *maskImage, bool useMaskErosion, const FixedImagePyramidType *pyramid, unsigned int level) const
const ITKBaseType * GetAsITKBaseType() const
typename ElastixType::MaskPixelType MaskPixelType
itk::ImageMaskSpatialObject< Self::FixedImageDimension > FixedMaskSpatialObjectType
typename ITKBaseType::MovingImagePyramidType MovingImagePyramidType
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
typename ITKBaseType::FixedImagePyramidType FixedImagePyramidType
typename MovingMaskErodeFilterType::Pointer MovingMaskErodeFilterPointer
ITK_DISALLOW_COPY_AND_MOVE(RegistrationBase)
typename MovingMaskSpatialObjectType::Pointer MovingMaskSpatialObjectPointer
elxDeclarePureVirtualGetSelfMacro(ITKBaseType)
~RegistrationBase() override=default
typename FixedMaskSpatialObjectType::Pointer FixedMaskSpatialObjectPointer
typename FixedMaskImageType::Pointer FixedMaskImagePointer
virtual bool ReadMaskParameters(UseMaskErosionArrayType &useMaskErosionArray, const unsigned int nrOfMasks, const std::string &whichMask, const unsigned int level) const
typename ElastixType::FixedImageType FixedImageType
itk::ImageMaskSpatialObject< Self::MovingImageDimension > MovingMaskSpatialObjectType
typename MovingMaskImageType::Pointer MovingMaskImagePointer
typename FixedMaskErodeFilterType::Pointer FixedMaskErodeFilterPointer
std::vector< bool > UseMaskErosionArrayType
typename ElastixType::MovingMaskType MovingMaskImageType
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
typename ElastixType::MovingImageType MovingImageType
MovingMaskSpatialObjectPointer GenerateMovingMaskSpatialObject(const MovingMaskImageType *maskImage, bool useMaskErosion, const MovingImagePyramidType *pyramid, unsigned int level) const
typename ElastixType::FixedMaskType FixedMaskImageType
Base class for multi-resolution image registration methods.
MultiResolutionPyramidImageFilter< FixedImageType, FixedImageType > FixedImagePyramidType
MultiResolutionPyramidImageFilter< MovingImageType, MovingImageType > MovingImagePyramidType


Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo