MCPcopy Create free account
hub / github.com/SimpleITK/SimpleITK / Main

Method Main

Examples/CSharp/ConnectedThresholdSegmentation.cs:32–92  ·  view source on GitHub ↗
(string[] args)

Source from the content-addressed store, hash-verified

30 public class Program
31 {
32 static void Main(string[] args)
33 {
34 if (args.Length < 6)
35 {
36 Console.WriteLine("Missing Parameters ");
37 Console.WriteLine("Usage: " + System.AppDomain.CurrentDomain.FriendlyName +
38 " inputImage outputImage" +
39 " lowerThreshold upperThreshold seedX seedY [seed2X seed2Y ... ]");
40 return;
41 }
42
43 string inputFilename = args[0];
44 string outputFilename = args[1];
45
46 double lowerThreshold = double.Parse(args[2], CultureInfo.InvariantCulture);
47 double upperThreshold = double.Parse(args[3], CultureInfo.InvariantCulture);
48
49 //
50 // Read the image
51 //
52
53 SitkImage inputImage = SimpleITK.ReadImage(inputFilename, PixelIDValueEnum.sitkFloat32);
54
55 //
56 // Blur using CurvatureFlowImageFilter
57 //
58 CurvatureFlowImageFilter blurFilter = new sitk.CurvatureFlowImageFilter();
59 blurFilter.SetNumberOfIterations(5);
60 blurFilter.SetTimeStep(0.125);
61 inputImage = blurFilter.Execute(inputImage);
62
63
64 //
65 // Set up ConnectedThresholdImageFilter for segmentation
66 //
67
68 ConnectedThresholdImageFilter segmentationFilter = new sitk.ConnectedThresholdImageFilter();
69 segmentationFilter.SetLower(lowerThreshold);
70 segmentationFilter.SetUpper(upperThreshold);
71 segmentationFilter.SetReplaceValue(255);
72
73 for (uint i = 4; i + 1 < args.Length; i += 2)
74 {
75 VectorUInt32 seed = new VectorUInt32(new uint[] { Convert.ToUInt32(args[i]), Convert.ToUInt32(args[i + 1]), 0 });
76 segmentationFilter.AddSeed(seed);
77 Console.WriteLine("Adding a seed at: ");
78 for (int j = 0; j + 1 < seed.Count; j++)
79 {
80 Console.WriteLine(seed[j] + " ");
81 }
82 }
83 SitkImage outImage = segmentationFilter.Execute(inputImage);
84
85 //
86 // Write out the resulting file
87 //
88
89 SimpleITK.WriteImage(outImage, outputFilename);

Callers

nothing calls this directly

Calls 1

ExecuteMethod · 0.45

Tested by

no test coverage detected