21 import SimpleITK
as sitk
29 "FastMarchingSegmentation",
30 "<inputImage> <outputImage> <seedX> <seedY> <Sigma>",
31 "<SigmoidAlpha> <SigmoidBeta> <TimeThreshold>",
36 inputFilename = args[1]
37 outputFilename = args[2]
39 seedPosition = (int(args[3]), int(args[4]))
41 sigma = float(args[5])
42 alpha = float(args[6])
44 timeThreshold = float(args[8])
45 stoppingTime = float(args[9])
50 smoothing.SetTimeStep(0.125)
51 smoothing.SetNumberOfIterations(5)
52 smoothing.SetConductanceParameter(9.0)
53 smoothingOutput = smoothing.Execute(inputImage)
56 gradientMagnitude.SetSigma(sigma)
57 gradientMagnitudeOutput = gradientMagnitude.Execute(smoothingOutput)
60 sigmoid.SetOutputMinimum(0.0)
61 sigmoid.SetOutputMaximum(1.0)
62 sigmoid.SetAlpha(alpha)
64 sigmoidOutput = sigmoid.Execute(gradientMagnitudeOutput)
69 trialPoint = (seedPosition[0], seedPosition[1], seedValue)
71 fastMarching.AddTrialPoint(trialPoint)
73 fastMarching.SetStoppingValue(stoppingTime)
75 fastMarchingOutput = fastMarching.Execute(sigmoidOutput)
78 thresholder.SetLowerThreshold(0.0)
79 thresholder.SetUpperThreshold(timeThreshold)
80 thresholder.SetOutsideValue(0)
81 thresholder.SetInsideValue(255)
83 result = thresholder.Execute(fastMarchingOutput)
87 image_dict = {
"InputImage": inputImage,
88 "SpeedImage": sigmoidOutput,
89 "TimeCrossingMap": fastMarchingOutput,
90 "Segmentation": result,
95 if __name__ ==
"__main__":
96 return_dict = main(sys.argv)