go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkImageToImageMetricWithFeatures.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 __itkImageToImageMetricWithFeatures_h
19#define __itkImageToImageMetricWithFeatures_h
20
22#include "itkInterpolateImageFunction.h"
23
24namespace itk
25{
26
37template< class TFixedImage, class TMovingImage,
38class TFixedFeatureImage = TFixedImage, class TMovingFeatureImage = TMovingImage >
40 public AdvancedImageToImageMetric< TFixedImage, TMovingImage >
41{
42public:
43
48 typedef SmartPointer< const Self > ConstPointer;
49
52
88 typedef typename Superclass::InternalMaskPixelType InternalMaskPixelType;
89 typedef typename Superclass::InternalMovingImageMaskType InternalMovingImageMaskType;
90 typedef typename Superclass::MovingImageMaskInterpolatorType MovingImageMaskInterpolatorType;
95
97 itkStaticConstMacro( FixedImageDimension, unsigned int,
98 FixedImageType::ImageDimension );
99
101 itkStaticConstMacro( MovingImageDimension, unsigned int,
102 MovingImageType::ImageDimension );
103
105 typedef TFixedFeatureImage FixedFeatureImageType;
106 typedef typename FixedFeatureImageType::Pointer FixedFeatureImagePointer;
107 typedef TMovingFeatureImage MovingFeatureImageType;
108 typedef typename MovingFeatureImageType::Pointer MovingFeatureImagePointer;
109 typedef std::vector< FixedFeatureImagePointer > FixedFeatureImageVectorType;
110 typedef std::vector< MovingFeatureImagePointer > MovingFeatureImageVectorType;
111
113 typedef InterpolateImageFunction< FixedFeatureImageType, double > FixedFeatureInterpolatorType;
114 typedef InterpolateImageFunction< MovingFeatureImageType, double > MovingFeatureInterpolatorType;
115 typedef typename FixedFeatureInterpolatorType::Pointer FixedFeatureInterpolatorPointer;
116 typedef typename MovingFeatureInterpolatorType::Pointer MovingFeatureInterpolatorPointer;
117 typedef std::vector< FixedFeatureInterpolatorPointer > FixedFeatureInterpolatorVectorType;
118 typedef std::vector< MovingFeatureInterpolatorPointer > MovingFeatureInterpolatorVectorType;
119
121 void SetNumberOfFixedFeatureImages( unsigned int arg );
122
124 itkGetConstMacro( NumberOfFixedFeatureImages, unsigned int );
125
127 void SetFixedFeatureImage( unsigned int i, FixedFeatureImageType * im );
128
130 {
131 this->SetFixedFeatureImage( 0, im );
132 }
133
134
136 const FixedFeatureImageType * GetFixedFeatureImage( unsigned int i ) const;
137
139 {
140 return this->GetFixedFeatureImage( 0 );
141 }
142
143
145 void SetFixedFeatureInterpolator( unsigned int i, FixedFeatureInterpolatorType * interpolator );
146
148 {
149 this->SetFixedFeatureInterpolator( 0, interpolator );
150 }
151
152
155
157 {
158 return this->GetFixedFeatureInterpolator( 0 );
159 }
160
161
163 void SetNumberOfMovingFeatureImages( unsigned int arg );
164
166 itkGetConstMacro( NumberOfMovingFeatureImages, unsigned int );
167
169 void SetMovingFeatureImage( unsigned int i, MovingFeatureImageType * im );
170
172 {
173 this->SetMovingFeatureImage( 0, im );
174 }
175
176
178 const MovingFeatureImageType * GetMovingFeatureImage( unsigned int i ) const;
179
181 {
182 return this->GetMovingFeatureImage( 0 );
183 }
184
185
187 void SetMovingFeatureInterpolator( unsigned int i, MovingFeatureInterpolatorType * interpolator );
188
190 {
191 this->SetMovingFeatureInterpolator( 0, interpolator );
192 }
193
194
197
199 {
200 return this->GetMovingFeatureInterpolator( 0 );
201 }
202
203
205 virtual void Initialize( void );
206
207protected:
208
211 void PrintSelf( std::ostream & os, Indent indent ) const;
212
214 typedef typename BSplineInterpolatorType::Pointer BSplineInterpolatorPointer;
215 typedef std::vector< BSplineInterpolatorPointer > BSplineFeatureInterpolatorVectorType;
220
228
232
237
238private:
239
240 ImageToImageMetricWithFeatures( const Self & ); // purposely not implemented
241 void operator=( const Self & ); // purposely not implemented
242
243};
244
245} // end namespace itk
246
247#ifndef ITK_MANUAL_INSTANTIATION
248#include "itkImageToImageMetricWithFeatures.hxx"
249#endif
250
251#endif // end #ifndef __itkImageToImageMetricWithFeatures_h
An extension of the ITK ImageToImageMetric. It is the intended base class for all elastix metrics.
BSplineInterpolateImageFunction< MovingImageType, CoordinateRepresentationType, double > BSplineInterpolatorType
Superclass::FixedImageConstPointer FixedImageConstPointer
Superclass::TransformParametersType TransformParametersType
Superclass::MovingImageConstPointer MovingImageConstPointer
Superclass::FixedImageMaskPointer FixedImageMaskPointer
InterpolatorType::ContinuousIndexType MovingImageContinuousIndexType
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::TransformJacobianType TransformJacobianType
Superclass::GradientImagePointer GradientImagePointer
Superclass::TransformPointer TransformPointer
ImageSamplerType::OutputVectorContainerPointer ImageSampleContainerPointer
ImageSamplerBase< FixedImageType > ImageSamplerType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
ImageSamplerType::OutputVectorContainerType ImageSampleContainerType
Superclass::InterpolatorPointer InterpolatorPointer
Superclass::MovingImageMaskPointer MovingImageMaskPointer
TransformType::InputPointType FixedImagePointType
Superclass::MovingImageMaskType MovingImageMaskType
Superclass::GradientPixelType GradientPixelType
MovingImageType::RegionType MovingImageRegionType
FixedImageLimiterType::OutputType FixedImageLimiterOutputType
Superclass::MovingImagePixelType MovingImagePixelType
MovingImageLimiterType::OutputType MovingImageLimiterOutputType
LimiterFunctionBase< RealType, MovingImageDimension > MovingImageLimiterType
BSplineInterpolatorType::CovariantVectorType MovingImageDerivativeType
Superclass::FixedImageMaskType FixedImageMaskType
Superclass::GradientImageType GradientImageType
Superclass::InterpolatorType InterpolatorType
TransformType::OutputPointType MovingImagePointType
LimiterFunctionBase< RealType, FixedImageDimension > FixedImageLimiterType
Superclass::FixedImageRegionType FixedImageRegionType
Computes similarity between regions of two images.
Superclass::MovingImageLimiterType MovingImageLimiterType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
FixedFeatureInterpolatorType::Pointer FixedFeatureInterpolatorPointer
Superclass::MovingImageContinuousIndexType MovingImageContinuousIndexType
Superclass::TransformParametersType TransformParametersType
void SetMovingFeatureImage(unsigned int i, MovingFeatureImageType *im)
Superclass::MovingImageConstPointer MovingImageConstPointer
const MovingFeatureImageType * GetMovingFeatureImage(void) const
Superclass::MovingImageMaskInterpolatorType MovingImageMaskInterpolatorType
std::vector< FixedFeatureInterpolatorPointer > FixedFeatureInterpolatorVectorType
const MovingFeatureInterpolatorType * GetMovingFeatureInterpolator(unsigned int i) const
BSplineInterpolatorType::Pointer BSplineInterpolatorPointer
void SetNumberOfFixedFeatureImages(unsigned int arg)
const FixedFeatureInterpolatorType * GetFixedFeatureInterpolator(void) const
void SetFixedFeatureImage(FixedFeatureImageType *im)
Superclass::FixedImageMaskPointer FixedImageMaskPointer
itkStaticConstMacro(MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
Superclass::InterpolatorPointer InterpolatorPointer
void SetMovingFeatureInterpolator(unsigned int i, MovingFeatureInterpolatorType *interpolator)
MovingFeatureInterpolatorVectorType m_MovingFeatureInterpolators
void SetMovingFeatureImage(MovingFeatureImageType *im)
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
InterpolateImageFunction< FixedFeatureImageType, double > FixedFeatureInterpolatorType
const MovingFeatureImageType * GetMovingFeatureImage(unsigned int i) const
Superclass::TransformJacobianType TransformJacobianType
Superclass::ImageSampleContainerPointer ImageSampleContainerPointer
InterpolateImageFunction< MovingFeatureImageType, double > MovingFeatureInterpolatorType
void SetNumberOfMovingFeatureImages(unsigned int arg)
Superclass::FixedImageRegionType FixedImageRegionType
Superclass::MovingImageMaskPointer MovingImageMaskPointer
FixedFeatureImageType::Pointer FixedFeatureImagePointer
void SetMovingFeatureInterpolator(MovingFeatureInterpolatorType *interpolator)
Superclass::ImageSampleContainerType ImageSampleContainerType
MovingFeatureImageType::Pointer MovingFeatureImagePointer
void SetFixedFeatureInterpolator(unsigned int i, FixedFeatureInterpolatorType *interpolator)
std::vector< MovingFeatureImagePointer > MovingFeatureImageVectorType
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::MovingImagePixelType MovingImagePixelType
void SetFixedFeatureImage(unsigned int i, FixedFeatureImageType *im)
Superclass::InternalMovingImageMaskType InternalMovingImageMaskType
const MovingFeatureInterpolatorType * GetMovingFeatureInterpolator(void) const
Superclass::MovingImageDerivativeType MovingImageDerivativeType
Superclass::MovingImageLimiterOutputType MovingImageLimiterOutputType
std::vector< MovingFeatureInterpolatorPointer > MovingFeatureInterpolatorVectorType
Superclass::BSplineInterpolatorType BSplineInterpolatorType
Superclass::FixedImageLimiterType FixedImageLimiterType
const FixedFeatureImageType * GetFixedFeatureImage(void) const
Superclass::FixedImagePixelType FixedImagePixelType
void PrintSelf(std::ostream &os, Indent indent) const
const FixedFeatureImageType * GetFixedFeatureImage(unsigned int i) const
void SetFixedFeatureInterpolator(FixedFeatureInterpolatorType *interpolator)
FixedFeatureInterpolatorVectorType m_FixedFeatureInterpolators
MovingFeatureInterpolatorType::Pointer MovingFeatureInterpolatorPointer
BSplineFeatureInterpolatorVectorType m_MovingFeatureBSplineInterpolators
Superclass::ImageSamplerPointer ImageSamplerPointer
AdvancedImageToImageMetric< TFixedImage, TMovingImage > Superclass
Superclass::FixedImageLimiterOutputType FixedImageLimiterOutputType
std::vector< FixedFeatureImagePointer > FixedFeatureImageVectorType
Superclass::MovingImageRegionType MovingImageRegionType
virtual void CheckForBSplineFeatureInterpolators(void)
std::vector< BSplineInterpolatorPointer > BSplineFeatureInterpolatorVectorType
Superclass::MovingImagePointType MovingImagePointType
Superclass::GradientImageFilterPointer GradientImageFilterPointer
Superclass::FixedImageConstPointer FixedImageConstPointer
Superclass::MovingImageMaskType MovingImageMaskType
Superclass::InternalMaskPixelType InternalMaskPixelType
Superclass::GradientImagePointer GradientImagePointer
const FixedFeatureInterpolatorType * GetFixedFeatureInterpolator(unsigned int i) const


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo