20 import SimpleITK
as sitk
25 def command_iteration(filter):
26 print(f
"{filter.GetElapsedIterations():3} = {filter.GetMetric():10.5f}")
31 f
"Usage: {sys.argv[0]}"
32 +
" <fixedImageFilter> <movingImageFile> <outputTransformFile>"
41 matcher.SetNumberOfHistogramLevels(1024)
42 matcher.SetNumberOfMatchPoints(7)
43 matcher.ThresholdAtMeanIntensityOn()
44 moving = matcher.Execute(moving, fixed)
50 demons.SetNumberOfIterations(50)
52 demons.SetStandardDeviations(1.0)
54 demons.AddCommand(sitk.sitkIterationEvent,
lambda: command_iteration(demons))
56 displacementField = demons.Execute(fixed, moving)
59 print(f
"Number Of Iterations: {demons.GetElapsedIterations()}")
60 print(f
" RMS: {demons.GetRMSChange()}")
66 if "SITK_NOSHOW" not in os.environ:
68 resampler.SetReferenceImage(fixed)
69 resampler.SetInterpolator(sitk.sitkLinear)
70 resampler.SetDefaultPixelValue(100)
71 resampler.SetTransform(outTx)
73 out = resampler.Execute(moving)
79 cimg =
sitk.Compose(simg1, simg2, simg1 // 2.0 + simg2 // 2.0)
80 sitk.Show(cimg,
"DeformableRegistration1 Composition")