20 from distutils.version
import StrictVersion
as VS
22 print(
"ITK 4.7.0 is required (see example documentation).")
25 if len(sys.argv) != 5:
26 print(
"Usage: " + sys.argv[0] +
27 " [InputFileName] [OutputFileNameX] [OutputFileNameY]" +
28 " [OutputFileNameMagnitude]")
31 inputFileName = sys.argv[1]
32 outputFileNameX = sys.argv[2]
33 outputFileNameY = sys.argv[3]
34 outputFileNameMagnitude = sys.argv[4]
39 filenames.append(outputFileNameX)
40 filenames.append(outputFileNameY)
44 ImageType =
itk.Image[PixelType, Dimension]
46 FloatPixelType = itk.F
47 FloatImageType =
itk.Image[FloatPixelType, Dimension]
52 CovImageType =
itk.Image[CovPixelType, Dimension]
55 reader = ReaderType.New()
56 reader.SetFileName(inputFileName)
59 gradientFilter = FilterType.New()
60 gradientFilter.SetInput(reader.GetOutput())
64 CovImageType, FloatImageType]
65 indexSelectionFilter = IndexSelectionType.New()
66 indexSelectionFilter.SetInput(gradientFilter.GetOutput())
70 rescaler = RescalerType.New()
71 rescaler.SetOutputMinimum(itk.NumericTraits[PixelType].min())
72 rescaler.SetOutputMaximum(itk.NumericTraits[PixelType].max())
73 rescaler.SetInput(indexSelectionFilter.GetOutput())
76 writer = WriterType.New()
77 writer.SetInput(rescaler.GetOutput())
81 writer.SetFileName(filenames[i])
82 indexSelectionFilter.SetIndex(i)
87 CovImageType, FloatImageType]
88 magnitudeFilter = MagnitudeType.New()
89 magnitudeFilter.SetInput(gradientFilter.GetOutput())
92 rescaler.SetInput(magnitudeFilter.GetOutput())
94 writer.SetFileName(outputFileNameMagnitude)
95 writer.SetInput(rescaler.GetOutput())