20 parser = argparse.ArgumentParser(description=
"Compute Curvature Anisotropic Diffusion.")
21 parser.add_argument(
"input_image")
22 parser.add_argument(
"output_image")
23 parser.add_argument(
"number_of_iterations", type=int)
24 parser.add_argument(
"time_step", type=float)
25 parser.add_argument(
"conductance", type=float)
26 args = parser.parse_args()
28 InputPixelType = itk.F
29 OutputPixelType = itk.UC
32 InputImageType =
itk.Image[InputPixelType, Dimension]
33 OutputImageType =
itk.Image[OutputPixelType, Dimension]
36 reader = ReaderType.New()
37 reader.SetFileName(args.input_image)
40 InputImageType, InputImageType
42 curvatureAnisotropicDiffusionFilter = FilterType.New()
44 curvatureAnisotropicDiffusionFilter.SetInput(reader.GetOutput())
45 curvatureAnisotropicDiffusionFilter.SetNumberOfIterations(args.number_of_iterations)
46 curvatureAnisotropicDiffusionFilter.SetTimeStep(args.time_step)
47 curvatureAnisotropicDiffusionFilter.SetConductanceParameter(args.conductance)
50 rescaler = RescaleFilterType.New()
51 rescaler.SetInput(curvatureAnisotropicDiffusionFilter.GetOutput())
56 rescaler.SetOutputMinimum(outputPixelTypeMinimum)
57 rescaler.SetOutputMaximum(outputPixelTypeMaximum)
60 writer = WriterType.New()
61 writer.SetFileName(args.output_image)
62 writer.SetInput(rescaler.GetOutput())