/usr/src/WrapITK/Tcl/Tests/ImageRegistration4.tcl is in libinsighttoolkit3-dev 3.20.1-1.
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 | #=========================================================================
#
# Program: Insight Segmentation & Registration Toolkit
# Module: ImageRegistration4.tcl
# Language: C++
# Date: $Date$
# Version: $Revision$
#
# Copyright (c) Insight Software Consortium. All rights reserved.
# See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even
# the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the above copyright notices for more information.
#
#=========================================================================
package require InsightToolkit
package require itkinteraction
set registration [ itkImageRegistrationMethodF2F2_New ]
set imageMetric [ itkMattesMutualInformationImageToImageMetricF2F2_New ]
set transform [ itkTranslationTransform2_New ]
set optimizer [ itkRegularStepGradientDescentOptimizer_New ]
set interpolator [ itkLinearInterpolateImageFunctionF2D_New ]
$imageMetric SetNumberOfHistogramBins 20
$imageMetric SetNumberOfSpatialSamples 10000
$registration SetOptimizer [ $optimizer GetPointer ]
$registration SetTransform [ $transform GetPointer ]
$registration SetInterpolator [ $interpolator GetPointer ]
$registration SetMetric [ $imageMetric GetPointer ]
set fixedImageReader [ itkImageFileReaderF2_New ]
set movingImageReader [ itkImageFileReaderF2_New ]
$fixedImageReader SetFileName [lindex $argv 0]
$movingImageReader SetFileName [lindex $argv 1]
$fixedImageReader Update
$movingImageReader Update
set fixedImage [ $fixedImageReader GetOutput ]
set movingImage [ $movingImageReader GetOutput ]
$registration SetFixedImage $fixedImage
$registration SetMovingImage $movingImage
set fixedImageRegion [ $fixedImage GetBufferedRegion ]
$registration SetFixedImageRegion $fixedImageRegion
$transform SetIdentity
set initialParameters [ $transform GetParameters ]
$registration SetInitialTransformParameters $initialParameters
$optimizer SetMaximumStepLength 4.00
$optimizer SetMinimumStepLength 0.005
$optimizer SetNumberOfIterations 200
set command [itkTclCommand_New]
$command SetInterpreter [GetInterp]
$command SetCommandString {
set currentParameter [$transform GetParameters]
puts "M: [$optimizer GetValue] P: [$currentParameter GetElement 0 ] [$currentParameter GetElement 1 ] "}
$optimizer AddObserver [itkIterationEvent] [$command GetPointer]
# Here the registration is done
$registration StartRegistration
# Get the final parameters of the transformation
set finalParameters [$registration GetLastTransformParameters]
# Print them out
puts "Final Registration Parameters "
puts "Translation X = [$finalParameters GetElement 0]"
puts "Translation Y = [$finalParameters GetElement 1]"
# Now,
# we use the final transform for resampling the
# moving image.
set resampler [itkResampleImageFilterF2F2_New ]
$resampler SetTransform [$transform GetPointer]
$resampler SetInput $movingImage
set region [ $fixedImage GetLargestPossibleRegion ]
$resampler SetSize [ $region GetSize ]
$resampler SetOutputSpacing [ $fixedImage GetSpacing ]
$resampler SetOutputOrigin [ $fixedImage GetOrigin ]
$resampler SetDefaultPixelValue 100
set outputCast [itkRescaleIntensityImageFilterF2US2_New]
$outputCast SetOutputMinimum 0
$outputCast SetOutputMaximum 65535
$outputCast SetInput [$resampler GetOutput]
#
# Write the resampled image
#
set writer [ itkImageFileWriterUS2_New ]
$writer SetFileName [lindex $argv 2]
$writer SetInput [ $outputCast GetOutput ]
$writer Update
wm withdraw .
exit
|