21 from distutils.version
import StrictVersion
as VS
24 print(
"ITK 4.8.0 is required (see example documentation).")
27 parser = argparse.ArgumentParser(
28 description=
"Apply Gradient Recursive Gaussian With Vector Input."
30 parser.add_argument(
"input_image")
31 parser.add_argument(
"output_image_1x")
32 parser.add_argument(
"output_image_1y")
33 parser.add_argument(
"output_image_2x")
34 parser.add_argument(
"output_image_2y")
35 args = parser.parse_args()
49 ImageType =
itk.Image[PixelType, ImageDimension]
50 FloatPixelType = itk.F
51 FloatImageType =
itk.Image[FloatPixelType, ImageDimension]
52 VecPixelType =
itk.Vector[FloatPixelType, VectorDimension]
53 VecImageType =
itk.Image[VecPixelType, ImageDimension]
55 CovImageType =
itk.Image[CovPixelType, ImageDimension]
58 reader = ReaderType.New()
59 reader.SetFileName(args.input_image)
63 inverter = InvertType.New()
64 inverter.SetInput(reader.GetOutput())
68 caster = CasterType.New()
69 caster2 = CasterType.New()
75 composer = ComposeType.New()
76 caster.SetInput(reader.GetOutput())
77 composer.SetInput(0, caster.GetOutput())
78 caster2.SetInput(inverter.GetOutput())
79 composer.SetInput(1, caster2.GetOutput())
84 gradientfilter = FilterType.New()
85 gradientfilter.SetInput(composer.GetOutput())
89 CovImageType, FloatImageType
91 indexSelectionFilter = IndexSelectionType.New()
92 indexSelectionFilter.SetInput(gradientfilter.GetOutput())
96 rescaler = RescalerType.New()
99 rescaler.SetInput(indexSelectionFilter.GetOutput())
102 writer = WriterType.New()
103 writer.SetInput(rescaler.GetOutput())
106 indexSelectionFilter.SetIndex(i)
107 writer.SetFileName(filenames[i])