ITK  4.9.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 
141 
144 
147 
151 
155 
159 
163 
164 
187  virtual void SetFixedParameters( const FixedParametersType & parameters ) ITK_OVERRIDE;
189 
194 
206  virtual void SetCoefficientImages( const CoefficientImageArray & images ) ITK_OVERRIDE;
207 
210 
212  typedef typename Superclass::SizeType SizeType;
216 
219 
222 
225 
235  virtual void TransformPoint( const InputPointType & inputPoint, OutputPointType & outputPoint,
236  WeightsType & weights, ParameterIndexArrayType & indices, bool & inside ) const ITK_OVERRIDE;
238 
239  virtual void ComputeJacobianWithRespectToParameters( const InputPointType &, JacobianType & ) const ITK_OVERRIDE;
240 
242  virtual NumberOfParametersType GetNumberOfParameters() const ITK_OVERRIDE;
243 
246 
248  typedef typename Superclass::PixelType PixelType;
249 
251 
253  virtual void SetTransformDomainOrigin( const OriginType & );
254 
256  itkGetConstMacro( TransformDomainOrigin, OriginType );
257 
259  virtual void SetTransformDomainPhysicalDimensions( const PhysicalDimensionsType & );
260 
262  itkGetConstMacro( TransformDomainPhysicalDimensions, PhysicalDimensionsType );
263 
265  virtual void SetTransformDomainDirection( const DirectionType & );
266 
268  itkGetConstMacro( TransformDomainDirection, DirectionType );
269 
271  virtual void SetTransformDomainMeshSize( const MeshSizeType & );
272 
274  itkGetConstMacro( TransformDomainMeshSize, MeshSizeType );
275 
276 protected:
278  void PrintSelf( std::ostream & os, Indent indent ) const ITK_OVERRIDE;
279 
281  virtual ~BSplineTransform();
282 
283 private:
284 
286  virtual void SetFixedParametersGridSizeFromTransformDomainInformation() const ITK_OVERRIDE;
287 
289  virtual void SetFixedParametersGridOriginFromTransformDomainInformation() const ITK_OVERRIDE;
290 
292  virtual void SetFixedParametersGridSpacingFromTransformDomainInformation() const ITK_OVERRIDE;
293 
295  virtual void SetFixedParametersGridDirectionFromTransformDomainInformation() const ITK_OVERRIDE;
296 
298  virtual void SetCoefficientImageInformationFromFixedParameters() ITK_OVERRIDE;
299 
300  BSplineTransform( const Self & ) ITK_DELETE_FUNCTION;
301  void operator=( const Self & ) ITK_DELETE_FUNCTION;
302 
304  virtual bool InsideValidRegion( ContinuousIndexType & ) const ITK_OVERRIDE;
305 
307  PhysicalDimensionsType m_TransformDomainPhysicalDimensions;
310 
312 }; // class BSplineTransform
313 } // namespace itk
314 
315 #ifndef ITK_MANUAL_INSTANTIATION
316 #include "itkBSplineTransform.hxx"
317 #endif
318 
319 #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::FixedParametersValueType FixedParametersValueType
Definition: itkTransform.h:116
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
Superclass::FixedParametersValueType FixedParametersValueType
virtual void SetCoefficientImageInformationFromFixedParameters() override
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:52
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