ITK  4.8.0
Insight Segmentation and Registration Toolkit
itkBSplineTransform.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
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 itkBSplineTransform_h
19 #define itkBSplineTransform_h
20 
22 
23 namespace itk
24 {
108 template<typename TParametersValueType=double,
109  unsigned int NDimensions = 3,
110  unsigned int VSplineOrder = 3>
112  public BSplineBaseTransform<TParametersValueType,NDimensions,VSplineOrder>
113 {
114 public:
120 
122  itkNewMacro( Self );
123 
125  itkTypeMacro( BSplineTransform, BSplineBaseTransform );
126 
128  itkStaticConstMacro( SpaceDimension, unsigned int, NDimensions );
129 
131  itkStaticConstMacro( SplineOrder, unsigned int, VSplineOrder );
132 
135 
139 
142 
145 
149 
153 
157 
161 
162 
185  virtual void SetFixedParameters( const FixedParametersType & parameters ) ITK_OVERRIDE;
187 
193 
205  virtual void SetCoefficientImages( const CoefficientImageArray & images ) ITK_OVERRIDE;
206 
209 
211  typedef typename Superclass::SizeType SizeType;
215 
218 
221 
224 
234  virtual void TransformPoint( const InputPointType & inputPoint, OutputPointType & outputPoint,
235  WeightsType & weights, ParameterIndexArrayType & indices, bool & inside ) const ITK_OVERRIDE;
237 
238  virtual void ComputeJacobianWithRespectToParameters( const InputPointType &, JacobianType & ) const ITK_OVERRIDE;
239 
241  virtual NumberOfParametersType GetNumberOfParameters() const ITK_OVERRIDE;
242 
245 
247  typedef typename Superclass::PixelType PixelType;
248 
250 
252  virtual void SetTransformDomainOrigin( const OriginType & );
253 
255  itkGetConstMacro( TransformDomainOrigin, OriginType );
256 
258  virtual void SetTransformDomainPhysicalDimensions( const PhysicalDimensionsType & );
259 
261  itkGetConstMacro( TransformDomainPhysicalDimensions, PhysicalDimensionsType );
262 
264  virtual void SetTransformDomainDirection( const DirectionType & );
265 
267  itkGetConstMacro( TransformDomainDirection, DirectionType );
268 
270  virtual void SetTransformDomainMeshSize( const MeshSizeType & );
271 
273  itkGetConstMacro( TransformDomainMeshSize, MeshSizeType );
274 
275 protected:
277  void PrintSelf( std::ostream & os, Indent indent ) const ITK_OVERRIDE;
278 
280  virtual ~BSplineTransform();
281 
282 private:
283 
285  virtual void SetFixedParametersGridSizeFromTransformDomainInformation() const ITK_OVERRIDE;
286 
288  virtual void SetFixedParametersGridOriginFromTransformDomainInformation() const ITK_OVERRIDE;
289 
291  virtual void SetFixedParametersGridSpacingFromTransformDomainInformation() const ITK_OVERRIDE;
292 
294  virtual void SetFixedParametersGridDirectionFromTransformDomainInformation() const ITK_OVERRIDE;
295 
297  virtual void SetCoefficientImageInformationFromFixedParameters() ITK_OVERRIDE;
298 
299  BSplineTransform( const Self & ); // purposely not implemented
300  void operator=( const Self & ); // purposely not implemented
301 
303  virtual bool InsideValidRegion( ContinuousIndexType & ) const ITK_OVERRIDE;
304 
306  PhysicalDimensionsType m_TransformDomainPhysicalDimensions;
309 
311 }; // class BSplineTransform
312 } // namespace itk
313 
314 #ifndef ITK_MANUAL_INSTANTIATION
315 #include "itkBSplineTransform.hxx"
316 #endif
317 
318 #endif /* itkBSplineTransform_h */
CovariantVector< TParametersValueType, itkGetStaticConstMacro(SpaceDimension)> InputCovariantVectorType
virtual void SetTransformDomainPhysicalDimensions(const PhysicalDimensionsType &)
virtual bool InsideValidRegion(ContinuousIndexType &) const override
virtual void SetFixedParameters(const FixedParametersType &parameters) override
Light weight base class for most itk classes.
MeshSizeType m_TransformDomainMeshSize
virtual void SetFixedParametersGridOriginFromTransformDomainInformation() const override
virtual void SetTransformDomainDirection(const DirectionType &)
BSplineInterpolationWeightFunction< ScalarType, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SplineOrder)> WeightsFunctionType
virtual void SetCoefficientImages(const CoefficientImageArray &images) override
WeightsFunctionType::ContinuousIndexType ContinuousIndexType
Superclass::ScalarType ScalarType
Superclass::ScalarType ScalarType
BSplineBaseTransform< TParametersValueType, NDimensions, VSplineOrder > Superclass
virtual void SetTransformDomainMeshSize(const MeshSizeType &)
Vector< TParametersValueType, itkGetStaticConstMacro(SpaceDimension)> InputVectorType
Deformable transform using a BSpline representation.
Superclass::ParameterIndexArrayType ParameterIndexArrayType
virtual void SetFixedParametersGridDirectionFromTransformDomainInformation() const override
Superclass::WeightsFunctionType WeightsFunctionType
Image< ParametersValueType, itkGetStaticConstMacro(SpaceDimension)> ImageType
virtual NumberOfParametersType GetNumberOfParameters() const override
virtual void ComputeJacobianWithRespectToParameters(const InputPointType &, JacobianType &) const override
ImageRegion< itkGetStaticConstMacro(SpaceDimension)> RegionType
Superclass::NumberOfParametersType NumberOfParametersType
Superclass::DirectionType DirectionType
SmartPointer< Self > Pointer
Superclass::JacobianType JacobianType
Superclass::ParametersValueType ParametersValueType
virtual void SetFixedParametersGridSpacingFromTransformDomainInformation() const override
Array< unsigned long > ParameterIndexArrayType
NumberOfParametersType GetNumberOfParametersPerDimension() const override
ParametersType::ValueType ParametersValueType
Superclass::SizeType SizeType
vnl_vector_fixed< TParametersValueType, SpaceDimension > OutputVnlVectorType
static const unsigned int SplineOrder
vnl_vector_fixed< TParametersValueType, SpaceDimension > InputVnlVectorType
Superclass::OutputVectorType OutputVectorType
Superclass::ImageType ImageType
virtual void TransformPoint(const InputPointType &inputPoint, OutputPointType &outputPoint, WeightsType &weights, ParameterIndexArrayType &indices, bool &inside) const override
Superclass::InputCovariantVectorType InputCovariantVectorType
CovariantVector< TParametersValueType, itkGetStaticConstMacro(SpaceDimension)> OutputCovariantVectorType
WeightsFunctionType::WeightsType WeightsType
PhysicalDimensionsType m_TransformDomainPhysicalDimensions
Superclass::ParametersType ParametersType
Superclass::InputPointType InputPointType
Superclass::CoefficientImageArray CoefficientImageArray
static const unsigned int SpaceDimension
virtual void SetTransformDomainOrigin(const OriginType &)
virtual void SetFixedParametersGridSizeFromTransformDomainInformation() const override
Superclass::FixedParametersType FixedParametersType
Point< TParametersValueType, itkGetStaticConstMacro(SpaceDimension)> OutputPointType
FixedArray< ImagePointer, NDimensions > CoefficientImageArray
Superclass::ImagePointer ImagePointer
A base class with common elements of BSplineTransform and BSplineDeformableTransform.
Superclass::FixedParametersType FixedParametersType
SmartPointer< const Self > ConstPointer
Superclass::IndexType IndexType
Superclass::NumberOfParametersType NumberOfParametersType
Superclass::WeightsType WeightsType
Superclass::OriginType OriginType
OutputPointType TransformPoint(const InputPointType &point) const override
ImageType::DirectionType DirectionType
A templated class holding a point in n-Dimensional image space.
Point< TParametersValueType, itkGetStaticConstMacro(SpaceDimension)> InputPointType
Superclass::ContinuousIndexType ContinuousIndexType
Superclass::InputVnlVectorType InputVnlVectorType
DirectionType m_TransformDomainDirection
Control indentation during Print() invocation.
Definition: itkIndent.h:49
Vector< TParametersValueType, itkGetStaticConstMacro(SpaceDimension)> OutputVectorType
void PrintSelf(std::ostream &os, Indent indent) const override
virtual void SetCoefficientImageInformationFromFixedParameters() override
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:51
Superclass::SpacingType SpacingType
Superclass::ParametersType ParametersType
DirectionType m_TransformDomainDirectionInverse
Superclass::RegionType RegionType
Superclass::OutputCovariantVectorType OutputCovariantVectorType
Superclass::InputVectorType InputVectorType
Superclass::OutputVnlVectorType OutputVnlVectorType
Superclass::JacobianType JacobianType
Superclass::OutputPointType OutputPointType