ITK  4.6.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 TScalar = double, unsigned int NDimensions = 3,
109  unsigned int VSplineOrder = 3>
111  public BSplineBaseTransform<TScalar,NDimensions,VSplineOrder>
112 {
113 public:
119 
121  itkNewMacro( Self );
122 
124  itkTypeMacro( BSplineTransform, BSplineBaseTransform );
125 
127  itkStaticConstMacro( SpaceDimension, unsigned int, NDimensions );
128 
130  itkStaticConstMacro( SplineOrder, unsigned int, VSplineOrder );
131 
134 
137 
140 
143 
147 
151 
155 
159 
160 
183  virtual void SetFixedParameters( const ParametersType & parameters );
185 
191 
203  virtual void SetCoefficientImages( const CoefficientImageArray & images );
204 
207 
209  typedef typename Superclass::SizeType SizeType;
213 
216 
219 
222 
232  virtual void TransformPoint( const InputPointType & inputPoint, OutputPointType & outputPoint,
233  WeightsType & weights, ParameterIndexArrayType & indices, bool & inside ) const;
235 
236  virtual void ComputeJacobianWithRespectToParameters( const InputPointType &, JacobianType & ) const;
237 
240 
243 
246 
248 
250  virtual void SetTransformDomainOrigin( const OriginType & );
251 
253  itkGetConstMacro( TransformDomainOrigin, OriginType );
254 
257 
259  itkGetConstMacro( TransformDomainPhysicalDimensions, PhysicalDimensionsType );
260 
262  virtual void SetTransformDomainDirection( const DirectionType & );
263 
265  itkGetConstMacro( TransformDomainDirection, DirectionType );
266 
268  virtual void SetTransformDomainMeshSize( const MeshSizeType & );
269 
271  itkGetConstMacro( TransformDomainMeshSize, MeshSizeType );
272 
273 protected:
275  void PrintSelf( std::ostream & os, Indent indent ) const;
276 
278  virtual ~BSplineTransform();
279 
280 private:
281 
284 
287 
290 
293 
296 
297  BSplineTransform( const Self & ); // purposely not implemented
298  void operator=( const Self & ); // purposely not implemented
299 
301  virtual bool InsideValidRegion( ContinuousIndexType & ) const;
302 
307 
309 }; // class BSplineTransform
310 } // namespace itk
311 
312 #ifndef ITK_MANUAL_INSTANTIATION
313 #include "itkBSplineTransform.hxx"
314 #endif
315 
316 #endif /* __itkBSplineTransform_h */
void operator=(const Self &)
DirectionType m_TransformDomainDirectionInverse
Superclass::OutputPointType OutputPointType
virtual void SetCoefficientImages(const CoefficientImageArray &images)
SmartPointer< const Self > ConstPointer
virtual void SetFixedParametersGridDirectionFromTransformDomainInformation() const
Light weight base class for most itk classes.
MeshSizeType m_TransformDomainMeshSize
Image< ParametersValueType, itkGetStaticConstMacro(SpaceDimension)> ImageType
Point< TScalar, itkGetStaticConstMacro(SpaceDimension)> OutputPointType
PhysicalDimensionsType m_TransformDomainPhysicalDimensions
virtual void SetCoefficientImageInformationFromFixedParameters()
Superclass::InputPointType InputPointType
Superclass::ParametersValueType ParametersValueType
Superclass::InputVnlVectorType InputVnlVectorType
virtual void SetTransformDomainOrigin(const OriginType &)
Superclass::PixelType PixelType
Deformable transform using a BSpline representation.
NumberOfParametersType GetNumberOfParametersPerDimension() const
BSplineInterpolationWeightFunction< ScalarType, itkGetStaticConstMacro(SpaceDimension), itkGetStaticConstMacro(SplineOrder)> WeightsFunctionType
Superclass::OriginType OriginType
Superclass::InputCovariantVectorType InputCovariantVectorType
WeightsFunctionType::ContinuousIndexType ContinuousIndexType
BSplineBaseTransform< TScalar, NDimensions, VSplineOrder > Superclass
Superclass::CoefficientImageArray CoefficientImageArray
Superclass::SizeType SizeType
Superclass::WeightsFunctionType WeightsFunctionType
Superclass::ImageType ImageType
Superclass::OutputVectorType OutputVectorType
Superclass::NumberOfParametersType NumberOfParametersType
Superclass::ParameterIndexArrayType ParameterIndexArrayType
Superclass::WeightsType WeightsType
ImageType::DirectionType DirectionType
virtual NumberOfParametersType GetNumberOfParameters() const
Superclass::ParametersType ParametersType
DirectionType m_TransformDomainDirection
CovariantVector< TScalar, itkGetStaticConstMacro(SpaceDimension)> OutputCovariantVectorType
Superclass::SpacingType SpacingType
WeightsFunctionType::WeightsType WeightsType
Superclass::OutputVnlVectorType OutputVnlVectorType
SmartPointer< Self > Pointer
Superclass::ScalarType ScalarType
static const unsigned int SplineOrder
virtual void SetFixedParametersGridSizeFromTransformDomainInformation() const
Superclass::ImagePointer ImagePointer
FixedArray< ImagePointer, NDimensions > CoefficientImageArray
vnl_vector_fixed< TScalar, SpaceDimension > InputVnlVectorType
static const unsigned int SpaceDimension
virtual void SetTransformDomainMeshSize(const MeshSizeType &)
A base class with common elements of BSplineTransform and BSplineDeformableTransform.
Superclass::RegionType RegionType
Superclass::ContinuousIndexType ContinuousIndexType
Array< unsigned long > ParameterIndexArrayType
CovariantVector< TScalar, itkGetStaticConstMacro(SpaceDimension)> InputCovariantVectorType
virtual void SetFixedParameters(const ParametersType &parameters)
Superclass::DirectionType DirectionType
virtual void ComputeJacobianWithRespectToParameters(const InputPointType &, JacobianType &) const
void PrintSelf(std::ostream &os, Indent indent) const
A templated class holding a point in n-Dimensional image space.
Superclass::IndexType IndexType
virtual void SetTransformDomainDirection(const DirectionType &)
ImageRegion< itkGetStaticConstMacro(SpaceDimension)> RegionType
Superclass::ScalarType ScalarType
Vector< TScalar, itkGetStaticConstMacro(SpaceDimension)> OutputVectorType
Superclass::JacobianType JacobianType
Superclass::ParametersType ParametersType
Control indentation during Print() invocation.
Definition: itkIndent.h:49
virtual ~BSplineTransform()
virtual void SetFixedParametersGridOriginFromTransformDomainInformation() const
Superclass::InputVectorType InputVectorType
Superclass::JacobianType JacobianType
Superclass::SpacingType PhysicalDimensionsType
virtual void SetTransformDomainPhysicalDimensions(const PhysicalDimensionsType &)
OutputPointType TransformPoint(const InputPointType &point) const
Superclass::MeshSizeType MeshSizeType
virtual bool InsideValidRegion(ContinuousIndexType &) const
virtual void TransformPoint(const InputPointType &inputPoint, OutputPointType &outputPoint, WeightsType &weights, ParameterIndexArrayType &indices, bool &inside) const
Superclass::NumberOfParametersType NumberOfParametersType
Point< TScalar, itkGetStaticConstMacro(SpaceDimension)> InputPointType
ParametersType::ValueType ParametersValueType
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:51
Vector< TScalar, itkGetStaticConstMacro(SpaceDimension)> InputVectorType
virtual void SetFixedParametersGridSpacingFromTransformDomainInformation() const
vnl_vector_fixed< TScalar, SpaceDimension > OutputVnlVectorType
Superclass::OutputCovariantVectorType OutputCovariantVectorType