/usr/include/ITK-4.9/itkBSplineDeformableTransformInitializer.h is in libinsighttoolkit4-dev 4.9.0-4ubuntu1.
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 | /*=========================================================================
*
* 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 itkBSplineDeformableTransformInitializer_h
#define itkBSplineDeformableTransformInitializer_h
#include "itkConfigure.h" //Needed to determine value of ITKV3_COMPATIBILITY
#ifdef ITKV3_COMPATIBILITY
#include "itkObject.h"
#include "itkObjectFactory.h"
#include <iostream>
namespace itk
{
/** \class BSplineDeformableTransformInitializer
* \brief BSplineDeformableTransformInitializer is a helper class intended to
* initialize the grid parameters of a BSplineDeformableTransform based on the
* parameters of an image.
*
* In the context of image registration, the image to be used are reference will
* be the fixed image. The BSpline grid will use the fixed image as a base for
* computing the grid spacing, orientation and origin, among other things.
*
* This code was contributed in the Insight Journal paper:
*
* "Helper class for initializing the grid parameters of
* a BSpline deformable transform by using an image as reference"
*
* http://www.insight-journal.org/browse/publication/216
* http://hdl.handle.net/1926/1338
*
* \ingroup ITKTransform
*/
template< typename TTransform, typename TImage >
class BSplineDeformableTransformInitializer:public Object
{
public:
/** Standard class typedefs. */
typedef BSplineDeformableTransformInitializer Self;
typedef Object 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(BSplineDeformableTransformInitializer, Object);
/** Type of the transform to initialize */
typedef TTransform TransformType;
/** Types defined from transform traits */
typedef typename TransformType::Pointer TransformPointer;
typedef typename TransformType::RegionType TransformRegionType;
typedef typename TransformRegionType::SizeType TransformSizeType;
/** Dimension of parameters. */
itkStaticConstMacro(SpaceDimension, unsigned int,
TransformType::InputSpaceDimension);
/** Image Types to use in the initialization of the transform */
typedef TImage ImageType;
typedef typename ImageType::ConstPointer ImagePointer;
/** Set the transform to be initialized */
itkSetObjectMacro(Transform, TransformType);
/** Set the fixed image used in the registration process */
itkSetConstObjectMacro(Image, ImageType);
/** Set the number of grid nodes that we want to place inside the image. This
* method will override the settings of any previous call to
* SetNumberOfGridNodesInsideTheImage(). */
itkSetMacro(GridSizeInsideTheImage, TransformSizeType);
/** Set the number of grid nodes that we want to place inside the image. This
* number of node is used along one dimension of the image. Therefore, if
* you pass the number 5 as argument of this method, in a 3D space, then the
* total number of grid nodes inside the image will be \$ 5 x 5 x 5 \$ .
* This method will override the settings of any previous call to
* SetGridSizeInsideTheImage(). */
void SetNumberOfGridNodesInsideTheImage(unsigned int numberOfNodes)
{
this->m_GridSizeInsideTheImage.Fill(numberOfNodes);
this->Modified();
}
/** Initialize the transform using data from the images */
virtual void InitializeTransform() const;
protected:
BSplineDeformableTransformInitializer();
~BSplineDeformableTransformInitializer(){}
void PrintSelf(std::ostream & os, Indent indent) const ITK_OVERRIDE;
private:
BSplineDeformableTransformInitializer(const Self &) ITK_DELETE_FUNCTION;
void operator=(const Self &) ITK_DELETE_FUNCTION;
TransformPointer m_Transform;
ImagePointer m_Image;
TransformSizeType m_GridSizeInsideTheImage;
unsigned int m_NumberOfGridNodesInsideTheImage;
}; //class BSplineDeformableTransformInitializer
} // namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
#include "itkBSplineDeformableTransformInitializer.hxx"
#endif
#else // def ITKV3_COMPATIBILITY
#error "itkBSplineDeformableTransformInitializer.h should only be included for ITKv3 compatibility. Build with ITKV3_COMPATIBILITY=ON to use this"
#endif // def ITKV3_COMPATIBILITY
#endif /* itkBSplineDeformableTransformInitializer_h */
|