/usr/include/ITK-4.9/itkBSplineSyNImageRegistrationMethod.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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | /*=========================================================================
*
* 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 itkBSplineSyNImageRegistrationMethod_h
#define itkBSplineSyNImageRegistrationMethod_h
#include "itkSyNImageRegistrationMethod.h"
#include "itkBSplineSmoothingOnUpdateDisplacementFieldTransform.h"
#include "itkImageMaskSpatialObject.h"
namespace itk
{
/** \class BSplineSyNImageRegistrationMethod
* \brief Interface method for the performing greedy B-spline SyN image registration.
*
* For greedy SyN we use \c m_Transform to map the time-parameterized middle
* image to the fixed image (and vice versa using
* \c m_Transform->GetInverseDisplacementField() ). We employ another ivar,
* \c m_InverseTransform, to map the time-parameterized middle image to the
* moving image.
*
* Output: The output is the updated transform which has been added to the
* composite transform.
*
* \author Nick Tustison
* \author Brian Avants
*
* \ingroup ITKRegistrationMethodsv4
*/
template<typename TFixedImage, typename TMovingImage, typename TOutputTransform =
BSplineSmoothingOnUpdateDisplacementFieldTransform<double, TFixedImage::ImageDimension>,
typename TVirtualImage = TFixedImage,
typename TPointSet = PointSet<unsigned int, TFixedImage::ImageDimension> >
class BSplineSyNImageRegistrationMethod
: public SyNImageRegistrationMethod<TFixedImage, TMovingImage, TOutputTransform, TVirtualImage, TPointSet>
{
public:
/** Standard class typedefs. */
typedef BSplineSyNImageRegistrationMethod Self;
typedef SyNImageRegistrationMethod<TFixedImage, TMovingImage, TOutputTransform,
TVirtualImage, TPointSet> Superclass;
typedef SmartPointer<Self> Pointer;
typedef SmartPointer<const Self> ConstPointer;
/** Method for creation through the object factory. */
itkNewMacro( Self );
/** ImageDimension constants */
itkStaticConstMacro( ImageDimension, unsigned int, TFixedImage::ImageDimension );
/** Run-time type information (and related methods). */
itkTypeMacro( BSplineSyNImageRegistrationMethod, SyNImageRegistrationMethod );
/** Input typedefs for the images. */
typedef TFixedImage FixedImageType;
typedef typename FixedImageType::Pointer FixedImagePointer;
typedef typename Superclass::FixedImagesContainerType FixedImagesContainerType;
typedef TMovingImage MovingImageType;
typedef typename MovingImageType::Pointer MovingImagePointer;
typedef typename Superclass::MovingImagesContainerType MovingImagesContainerType;
typedef typename Superclass::PointSetType PointSetType;
typedef typename Superclass::PointSetsContainerType PointSetsContainerType;
/** Metric and transform typedefs */
typedef typename Superclass::ImageMetricType ImageMetricType;
typedef typename ImageMetricType::Pointer ImageMetricPointer;
typedef typename ImageMetricType::MeasureType MeasureType;
typedef typename ImageMetricType::FixedImageMaskType FixedImageMaskType;
typedef typename ImageMetricType::MovingImageMaskType MovingImageMaskType;
typedef typename Superclass::VirtualImageType VirtualImageType;
typedef typename Superclass::VirtualImageBaseType VirtualImageBaseType;
typedef typename Superclass::VirtualImageBaseConstPointer VirtualImageBaseConstPointer;
typedef typename Superclass::MultiMetricType MultiMetricType;
typedef typename Superclass::MetricType MetricType;
typedef typename MetricType::Pointer MetricPointer;
typedef typename Superclass::PointSetMetricType PointSetMetricType;
typedef typename Superclass::NumberOfIterationsArrayType NumberOfIterationsArrayType;
typedef typename Superclass::InitialTransformType InitialTransformType;
typedef TOutputTransform OutputTransformType;
typedef typename OutputTransformType::Pointer OutputTransformPointer;
typedef typename OutputTransformType::ScalarType RealType;
typedef typename OutputTransformType::DerivativeType DerivativeType;
typedef typename DerivativeType::ValueType DerivativeValueType;
typedef typename OutputTransformType::DisplacementFieldType DisplacementFieldType;
typedef typename DisplacementFieldType::Pointer DisplacementFieldPointer;
typedef typename DisplacementFieldType::PixelType DisplacementVectorType;
typedef DisplacementFieldToBSplineImageFilter<DisplacementFieldType> BSplineFilterType;
typedef typename BSplineFilterType::ArrayType ArrayType;
typedef typename BSplineFilterType::RealImageType WeightedMaskImageType;
typedef typename BSplineFilterType::InputPointSetType BSplinePointSetType;
typedef ImageMaskSpatialObject<ImageDimension> ImageMaskSpatialObjectType;
typedef typename ImageMaskSpatialObjectType::ImageType MaskImageType;
typedef typename Superclass::CompositeTransformType CompositeTransformType;
typedef typename Superclass::DisplacementFieldTransformType DisplacementFieldTransformType;
typedef typename Superclass::DisplacementFieldTransformPointer DisplacementFieldTransformPointer;
typedef typename CompositeTransformType::TransformType TransformBaseType;
typedef typename Superclass::DecoratedOutputTransformType DecoratedOutputTransformType;
typedef typename DecoratedOutputTransformType::Pointer DecoratedOutputTransformPointer;
protected:
BSplineSyNImageRegistrationMethod();
virtual ~BSplineSyNImageRegistrationMethod();
/** Handle optimization internally */
virtual void StartOptimization() ITK_OVERRIDE;
virtual void InitializeRegistrationAtEachLevel( const SizeValueType ) ITK_OVERRIDE;
virtual DisplacementFieldPointer ComputeUpdateField( const FixedImagesContainerType, const PointSetsContainerType,
const TransformBaseType *, const MovingImagesContainerType, const PointSetsContainerType,
const TransformBaseType *, const FixedImageMaskType *, MeasureType & ) ITK_OVERRIDE;
virtual DisplacementFieldPointer BSplineSmoothDisplacementField( const DisplacementFieldType *,
const ArrayType &, const WeightedMaskImageType *, const BSplinePointSetType * );
private:
BSplineSyNImageRegistrationMethod( const Self & ) ITK_DELETE_FUNCTION;
void operator=( const Self & ) ITK_DELETE_FUNCTION;
};
} // end namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
#include "itkBSplineSyNImageRegistrationMethod.hxx"
#endif
#endif
|