go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkDistancePreservingRigidityPenaltyTerm.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 __itkDistancePreservingRigidityPenaltyTerm_h
19 #define __itkDistancePreservingRigidityPenaltyTerm_h
20 
22 
26 
28 #include "itkNeighborhood.h"
29 #include "itkImageRegionIterator.h"
30 #include "itkNeighborhoodOperatorImageFilter.h"
31 #include "itkNeighborhoodIterator.h"
32 
33 #include "itkImageRegionIterator.h"
34 #include "itkMultiResolutionPyramidImageFilter.h"
35 
36 namespace itk
37 {
75 template< class TFixedImage, class TScalarType >
77  public TransformPenaltyTerm< TFixedImage, TScalarType >
78 {
79 public:
80 
84  typedef SmartPointer< Self > Pointer;
85  typedef SmartPointer< const Self > ConstPointer;
86 
88  itkNewMacro( Self );
89 
92 
111  typedef typename Superclass::RealType RealType;
129 
136 
138  itkStaticConstMacro( FixedImageDimension, unsigned int, FixedImageType::ImageDimension );
139  itkStaticConstMacro( MovingImageDimension, unsigned int, FixedImageType::ImageDimension );
140  itkStaticConstMacro( ImageDimension, unsigned int, FixedImageType::ImageDimension );
141 
143  void Initialize( void ) override;
144 
150  typedef typename CoefficientImageType::Pointer CoefficientImagePointer;
151  typedef typename CoefficientImageType::SpacingType CoefficientImageSpacingType;
153 
155  MeasureType GetValue( const ParametersType & parameters ) const override;
156 
158  void GetDerivative( const ParametersType & parameters, DerivativeType & derivative ) const override;
159 
161  void GetValueAndDerivative( const ParametersType & parameters, MeasureType & value, DerivativeType & derivative ) const override;
162 
166  itkSetObjectMacro( BSplineTransform, BSplineTransformType );
167 
169  typedef Image< signed short, itkGetStaticConstMacro( MovingImageDimension ) > BSplineKnotImageType;
170  typedef typename BSplineKnotImageType::Pointer BSplineKnotImagePointer;
171  typedef typename BSplineKnotImageType::RegionType BSplineKnotImageRegionType;
172 
174  typedef Image< signed short, itkGetStaticConstMacro( MovingImageDimension ) > PenaltyGridImageType;
175  typedef typename PenaltyGridImageType::Pointer PenaltyGridImagePointer;
176  typedef typename PenaltyGridImageType::RegionType PenaltyGridImageRegionType;
177 
179  typedef Image< signed short, itkGetStaticConstMacro( MovingImageDimension ) > SegmentedImageType;
180  typedef typename SegmentedImageType::Pointer SegmentedImagePointer;
181  typedef typename SegmentedImageType::RegionType SegmentedImageRegionType;
182 
184  itkSetObjectMacro( SegmentedImage, SegmentedImageType );
185 
188 
190  itkSetObjectMacro( SampledSegmentedImage, SegmentedImageType );
191 
194 
195  itkGetMacro( NumberOfRigidGrids, unsigned int );
196 
197 protected:
198 
201 
204 
206  void PrintSelf( std::ostream & os, Indent indent ) const override;
207 
208 private:
209 
211  DistancePreservingRigidityPenaltyTerm( const Self & ); // purposely not implemented
212 
214  void operator=( const Self & ); // purposely not implemented
215 
218 
220 
225 
226  unsigned int m_NumberOfRigidGrids;
227 
228 };
229 
230 // end class DistancePreservingRigidityPenaltyTerm
231 
232 } // end namespace itk
233 
234 #ifndef ITK_MANUAL_INSTANTIATION
235 #include "itkDistancePreservingRigidityPenaltyTerm.hxx"
236 #endif
237 
238 #endif // #ifndef __itkDistancePreservingRigidityPenaltyTerm_h
Deformable transform using a B-spline representation.
This class combines two transforms: an 'initial transform' with a 'current transform'.
Superclass::CoordinateRepresentationType CoordinateRepresentationType
itkStaticConstMacro(ImageDimension, unsigned int, FixedImageType::ImageDimension)
TransformPenaltyTerm< TFixedImage, TScalarType > Superclass
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
itkGetModifiableObjectMacro(SegmentedImage, SegmentedImageType)
void GetDerivative(const ParametersType &parameters, DerivativeType &derivative) const override
AdvancedBSplineDeformableTransform< ScalarType, FixedImageDimension, 3 > BSplineTransformType
itkGetModifiableObjectMacro(SampledSegmentedImage, SegmentedImageType)
AdvancedCombinationTransform< ScalarType, FixedImageDimension > CombinationTransformType
itkStaticConstMacro(MovingImageDimension, unsigned int, FixedImageType::ImageDimension)
void PrintSelf(std::ostream &os, Indent indent) const override
Superclass::ImageSampleContainerPointer ImageSampleContainerPointer
Image< signed short, itkGetStaticConstMacro(MovingImageDimension) > PenaltyGridImageType
Superclass::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
void GetValueAndDerivative(const ParametersType &parameters, MeasureType &value, DerivativeType &derivative) const override
Superclass::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType
MeasureType GetValue(const ParametersType &parameters) const override
Image< signed short, itkGetStaticConstMacro(MovingImageDimension) > BSplineKnotImageType
Image< signed short, itkGetStaticConstMacro(MovingImageDimension) > SegmentedImageType
A cost function that calculates a penalty term on a transformation.
Superclass::TransformParametersType TransformParametersType
Superclass::ImageSampleContainerType ImageSampleContainerType
TransformType::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
Superclass::ImageSampleContainerPointer ImageSampleContainerPointer
Superclass::GradientImageFilterType GradientImageFilterType
Superclass::MovingImageConstPointer MovingImageConstPointer
TransformType::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType
Superclass::CoordinateRepresentationType CoordinateRepresentationType
Superclass::GradientImageFilterPointer GradientImageFilterPointer


Generated on 1641078589 for elastix by doxygen 1.9.1 elastix logo