/usr/include/ITK-4.5/itkBSplineTransformParametersAdaptor.h is in libinsighttoolkit4-dev 4.5.0-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | /*=========================================================================
*
* Copyright Insight Software Consortium
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
#ifndef __itkBSplineTransformParametersAdaptor_h
#define __itkBSplineTransformParametersAdaptor_h
#include "itkTransformParametersAdaptor.h"
namespace itk
{
/** \class BSplineTransformParametersAdaptor
* \brief BSplineTransformParametersAdaptor adapts a BSplineTransform to the
* new specified fixed parameters.
*
* The fixed parameters of the BSplineTransform store the following information
* (in order as they appear in m_FixedParameters):
* grid size
* grid origin
* grid spacing
* grid direction
*
* During multiresolution image registration it is often desired to also increase
* the B-spline grid resolution for greater flexibility in optimizing the
* transform. As defined in the base class, the user can change the resolution via
*
* \code
* transformAdaptor->SetTransform( transform );
* transformAdaptor->SetRequiredFixedParameters( fixedParameters );
* transformAdaptor->AdaptTransformParameters();
* \endcode
*
* or the user can use the more intuitive API for setting the fixed parameters.
* E.g., often the user will want to maintain the same transform domain spatial
* extent but only increase the mesh size. This can be done as follows:
*
* \code
* transformAdaptor->SetTransform( transform );
* transformAdaptor->SetRequiredTransformDomainOrigin( transform->GetTransformDomainOrigin() );
* transformAdaptor->SetRequiredTransformDomainDirection( transform->GetTransformDomainDirection() );
* transformAdaptor->SetRequiredTransformDomainPhysicalDimensions( transform->GetTransformDomainPhysicalDimensions() );
* transformAdaptor->SetRequiredTransformDomainMeshSize( newMeshSize );
* transformAdaptor->AdaptTransformParameters();
* \endcode
*
* \author Nick Tustison
* \author Marius Staring
*
* \ingroup ITKRegistrationCommon
*/
template<typename TTransform>
class BSplineTransformParametersAdaptor
: public TransformParametersAdaptor<TTransform>
{
public:
/** Standard class typedefs. */
typedef BSplineTransformParametersAdaptor Self;
typedef TransformParametersAdaptor<TTransform> Superclass;
typedef SmartPointer<Self> Pointer;
typedef SmartPointer<const Self> ConstPointer;
/** New macro for creation of through a Smart Pointer. */
itkNewMacro( Self );
/** Run-time type information (and related methods). */
itkTypeMacro( BSplineTransformParametersAdaptor, TransformParametersAdaptor );
/** Typedefs associated with the transform */
typedef TTransform TransformType;
typedef typename TransformType::Pointer TransformPointer;
typedef typename Superclass::ParametersType ParametersType;
typedef typename Superclass::ParametersValueType ParametersValueType;
typedef typename TransformType::OriginType OriginType;
typedef typename TransformType::SizeType SizeType;
typedef typename TransformType::SpacingType SpacingType;
typedef typename TransformType::IndexType IndexType;
typedef typename TransformType::MeshSizeType MeshSizeType;
typedef typename TransformType::DirectionType DirectionType;
typedef typename TransformType::PhysicalDimensionsType PhysicalDimensionsType;
typedef typename TransformType::ImageType ImageType;
typedef typename ImageType::RegionType RegionType;
typedef typename TransformType::CoefficientImageArray CoefficientImageArray;
/** Dimension of parameters. */
itkStaticConstMacro( SpaceDimension, unsigned int, TransformType::SpaceDimension );
/** Alternative method for setting the required mesh size. */
void SetRequiredTransformDomainMeshSize( const MeshSizeType & );
/** Get the required mesh size. */
itkGetConstReferenceMacro( RequiredTransformDomainMeshSize, MeshSizeType );
/** Alternative method for setting the required mesh size. */
void SetRequiredTransformDomainPhysicalDimensions( const PhysicalDimensionsType & );
/** Get the required physical dimensions. */
itkGetConstReferenceMacro( RequiredTransformDomainPhysicalDimensions, PhysicalDimensionsType );
/** Alternative method for setting the required origin. */
void SetRequiredTransformDomainOrigin( const OriginType & );
/** Get the required origin. */
itkGetConstReferenceMacro( RequiredTransformDomainOrigin, OriginType );
/** Alternative method for setting the required direction. */
void SetRequiredTransformDomainDirection( const DirectionType & );
/** Get the required direction. */
itkGetConstReferenceMacro( RequiredTransformDomainDirection, DirectionType );
virtual void SetRequiredFixedParameters( const ParametersType );
/** Initialize the transform using the specified fixed parameters */
virtual void AdaptTransformParameters();
protected:
BSplineTransformParametersAdaptor();
~BSplineTransformParametersAdaptor();
void PrintSelf( std::ostream & os, Indent indent ) const;
private:
BSplineTransformParametersAdaptor( const Self & ); //purposely not implemented
void operator=( const Self & ); //purposely not implemented
/** Helper function to set m_RequiredFixedParameters */
void UpdateRequiredFixedParameters();
MeshSizeType m_RequiredTransformDomainMeshSize;
OriginType m_RequiredTransformDomainOrigin;
DirectionType m_RequiredTransformDomainDirection;
PhysicalDimensionsType m_RequiredTransformDomainPhysicalDimensions;
}; //class BSplineTransformParametersAdaptor
} // namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
#include "itkBSplineTransformParametersAdaptor.hxx"
#endif
#endif /* __itkBSplineTransformParametersAdaptor_h */
|