20 if len(sys.argv) != 5:
21 print(
"Usage: " + sys.argv[0] +
" <inputImage> <outputImage> "
22 "<numberOfIterations> <timeStep>")
25 inputImage = sys.argv[1]
26 outputImage = sys.argv[2]
27 numberOfIterations = int(sys.argv[3])
28 timeStep = float(sys.argv[4])
30 InputPixelType = itk.F
31 OutputPixelType = itk.UC
34 InputImageType =
itk.Image[InputPixelType, Dimension]
35 OutputImageType =
itk.Image[OutputPixelType, Dimension]
38 reader = ReaderType.New()
39 reader.SetFileName(inputImage)
42 InputImageType, InputImageType]
43 curvatureFlowFilter = FilterType.New()
45 curvatureFlowFilter.SetInput(reader.GetOutput())
46 curvatureFlowFilter.SetNumberOfIterations(numberOfIterations)
47 curvatureFlowFilter.SetTimeStep(timeStep)
50 InputImageType, OutputImageType]
51 rescaler = RescaleFilterType.New()
52 rescaler.SetInput(curvatureFlowFilter.GetOutput())
54 outputPixelTypeMinimum = itk.NumericTraits[OutputPixelType].min()
55 outputPixelTypeMaximum = itk.NumericTraits[OutputPixelType].max()
57 rescaler.SetOutputMinimum(outputPixelTypeMinimum)
58 rescaler.SetOutputMaximum(outputPixelTypeMaximum)
61 writer = WriterType.New()
62 writer.SetFileName(outputImage)
63 writer.SetInput(rescaler.GetOutput())