21 from distutils.version
import StrictVersion
as VS
24 print(
"ITK 4.7.0 is required (see example documentation).")
27 parser = argparse.ArgumentParser(description=
"Apply Gradient Recursive Gaussian.")
28 parser.add_argument(
"input_image")
29 parser.add_argument(
"output_image_x")
30 parser.add_argument(
"output_image_y")
31 parser.add_argument(
"output_image_magnitude")
32 args = parser.parse_args()
37 filenames.append(args.output_image_x)
38 filenames.append(args.output_image_y)
42 ImageType =
itk.Image[PixelType, Dimension]
44 FloatPixelType = itk.F
45 FloatImageType =
itk.Image[FloatPixelType, Dimension]
50 CovImageType =
itk.Image[CovPixelType, Dimension]
53 reader = ReaderType.New()
54 reader.SetFileName(args.input_image)
57 gradientFilter = FilterType.New()
58 gradientFilter.SetInput(reader.GetOutput())
62 CovImageType, FloatImageType
64 indexSelectionFilter = IndexSelectionType.New()
65 indexSelectionFilter.SetInput(gradientFilter.GetOutput())
69 rescaler = RescalerType.New()
72 rescaler.SetInput(indexSelectionFilter.GetOutput())
75 writer = WriterType.New()
76 writer.SetInput(rescaler.GetOutput())
80 writer.SetFileName(filenames[i])
81 indexSelectionFilter.SetIndex(i)
86 magnitudeFilter = MagnitudeType.New()
87 magnitudeFilter.SetInput(gradientFilter.GetOutput())
90 rescaler.SetInput(magnitudeFilter.GetOutput())
92 writer.SetFileName(args.output_image_magnitude)
93 writer.SetInput(rescaler.GetOutput())