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

Class DicomConvert

Examples/DicomConvert/DicomConvert.cs:28–154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26namespace itk.simple.examples
27{
28 public class DicomConvert
29 {
30 public static void Main(string[] args)
31 {
32 if (args.Length < 2)
33 {
34 Console.WriteLine("Usage: DicomConvert <root_of_data_directory> <output_file_extension> [--w width] [--od output_directory]");
35 return;
36 }
37 string rootDir = args[0];
38 string outputExt = args[1];
39 int? width = null;
40 string outDir = null;
41 for (int i = 2; i < args.Length; ++i)
42 {
43 if (args[i] == "--w" && i + 1 < args.Length)
44 {
45 width = int.Parse(args[++i]);
46 }
47 else if (args[i] == "--od" && i + 1 < args.Length)
48 {
49 outDir = args[++i];
50 }
51 }
52 var inputFiles = new List<string>();
53 WalkDir(new DirectoryInfo(rootDir), inputFiles);
54 var fileNames = new List<string>();
55 if (outDir != null)
56 {
57 for (int i = 0; i < inputFiles.Count; ++i)
58 {
59 fileNames.Add(Path.Combine(outDir, i.ToString()));
60 }
61 }
62 else
63 {
64 fileNames.AddRange(inputFiles);
65 }
66 var outputFiles = new List<string>();
67 foreach (var f in fileNames)
68 {
69 outputFiles.Add(f + "." + outputExt);
70 }
71 var res = new List<bool>();
72 for (int i = 0; i < inputFiles.Count; ++i)
73 {
74 res.Add(ConvertImage(inputFiles[i], outputFiles[i], width));
75 }
76 var filteredInput = new List<string>();
77 var filteredOutput = new List<string>();
78 for (int i = 0; i < res.Count; ++i)
79 {
80 if (res[i])
81 {
82 filteredInput.Add(inputFiles[i]);
83 filteredOutput.Add(outputFiles[i]);
84 }
85 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected