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

Method main

Examples/DicomConvert/DicomConvert.java:29–80  ·  view source on GitHub ↗
(String[] args)

Source from the content-addressed store, hash-verified

27
28public class DicomConvert {
29 public static void main(String[] args) throws Exception {
30 if (args.length < 2) {
31 System.out.println("Usage: DicomConvert <root_of_data_directory> <output_file_extension> [--w width] [--od output_directory]");
32 System.exit(1);
33 }
34 String rootDir = args[0];
35 String outputExt = args[1];
36 Integer width = null;
37 String outDir = null;
38 for (int i = 2; i < args.length; ++i) {
39 if (args[i].equals("--w") && i + 1 < args.length) {
40 width = Integer.parseInt(args[++i]);
41 } else if (args[i].equals("--od") && i + 1 < args.length) {
42 outDir = args[++i];
43 }
44 }
45 List<String> inputFiles = new ArrayList<>();
46 walkDir(new File(rootDir), inputFiles);
47 List<String> fileNames = new ArrayList<>();
48 if (outDir != null) {
49 for (int i = 0; i < inputFiles.size(); ++i) {
50 fileNames.add(new File(outDir, Integer.toString(i)).getAbsolutePath());
51 }
52 } else {
53 for (String f : inputFiles) {
54 fileNames.add(f);
55 }
56 }
57 List<String> outputFiles = new ArrayList<>();
58 for (String f : fileNames) {
59 outputFiles.add(f + "." + outputExt);
60 }
61 List<Boolean> res = new ArrayList<>();
62 for (int i = 0; i < inputFiles.size(); ++i) {
63 res.add(convertImage(inputFiles.get(i), outputFiles.get(i), width));
64 }
65 List<String> filteredInput = new ArrayList<>();
66 List<String> filteredOutput = new ArrayList<>();
67 for (int i = 0; i < res.size(); ++i) {
68 if (res.get(i)) {
69 filteredInput.add(inputFiles.get(i));
70 filteredOutput.add(outputFiles.get(i));
71 }
72 }
73 String csvDir = (outDir != null) ? outDir : System.getProperty("user.dir");
74 try (PrintWriter writer = new PrintWriter(new File(csvDir, "file_names.csv"), "UTF-8")) {
75 writer.println("input file name,output file name");
76 for (int i = 0; i < filteredInput.size(); ++i) {
77 writer.println(filteredInput.get(i) + "," + filteredOutput.get(i));
78 }
79 }
80 }
81
82 static void walkDir(File dir, List<String> files) {
83 for (File f : dir.listFiles()) {

Callers

nothing calls this directly

Calls 2

walkDirMethod · 0.95
convertImageMethod · 0.95

Tested by

no test coverage detected