20 if len(sys.argv) != 6:
21 print(
"Usage: " + sys.argv[0] +
" <inputImage> <outputImage> "
22 "<numberOfIterations> <timeStep> <conductance>")
25 inputImage = sys.argv[1]
26 outputImage = sys.argv[2]
27 numberOfIterations = int(sys.argv[3])
28 timeStep = float(sys.argv[4])
29 conductance = float(sys.argv[5])
31 InputPixelType = itk.F
32 OutputPixelType = itk.UC
35 InputImageType =
itk.Image[InputPixelType, Dimension]
36 OutputImageType =
itk.Image[OutputPixelType, Dimension]
39 reader = ReaderType.New()
40 reader.SetFileName(inputImage)
43 InputImageType, InputImageType]
44 gradientAnisotropicDiffusionFilter = FilterType.New()
46 gradientAnisotropicDiffusionFilter.SetInput(reader.GetOutput())
47 gradientAnisotropicDiffusionFilter.SetNumberOfIterations(numberOfIterations)
48 gradientAnisotropicDiffusionFilter.SetTimeStep(timeStep)
49 gradientAnisotropicDiffusionFilter.SetConductanceParameter(conductance)
52 InputImageType, OutputImageType]
53 rescaler = RescaleFilterType.New()
54 rescaler.SetInput(gradientAnisotropicDiffusionFilter.GetOutput())
56 outputPixelTypeMinimum = itk.NumericTraits[OutputPixelType].min()
57 outputPixelTypeMaximum = itk.NumericTraits[OutputPixelType].max()
59 rescaler.SetOutputMinimum(outputPixelTypeMinimum)
60 rescaler.SetOutputMaximum(outputPixelTypeMaximum)
63 writer = WriterType.New()
64 writer.SetFileName(outputImage)
65 writer.SetInput(rescaler.GetOutput())