2828import java .nio .file .Paths ;
2929import java .nio .file .SimpleFileVisitor ;
3030import java .nio .file .attribute .BasicFileAttributes ;
31- import java .util .Optional ;
32- import java .util .regex .Pattern ;
33- import java .util .stream .Stream ;
3431
3532import org .scijava .Context ;
3633
@@ -57,7 +54,7 @@ public class CTCMetricsRunner extends MetricsRunner
5754 /**
5855 * Path to ground truth folder.
5956 */
60- private String gtPath ;
57+ private final String gtPath ;
6158
6259 public CTCMetricsRunner ( final String gtPath , final String saveFolder , final Context context )
6360 {
@@ -70,42 +67,6 @@ public CTCMetricsRunner( final String gtPath, final String saveFolder, final Con
7067 @ Override
7168 public TrackingMetrics performMetricsMeasurements ( final TrackMate trackmate ) throws MetricsComputationErrorException
7269 {
73- // Do we have a folder for the ground-truth, or a TrackMate file?
74- if ( gtPath .toLowerCase ().endsWith ( ".xml" ) )
75- {
76- // Assume it's a TrackMate file, export it to CTC file format.
77- batchLogger .log ( "Ground-truth is in the TrackMate file format.\n " );
78-
79- final String regexPattern = "\\ d{2}_GT" ;
80- final Pattern pattern = Pattern .compile ( regexPattern );
81- try (Stream < Path > paths = Files .list ( resultsRootPath ))
82- {
83- final Optional < Path > ctcGTfolder = paths
84- .filter ( Files ::isDirectory )
85- .filter ( path -> pattern .matcher ( path .getFileName ().toString () ).matches () )
86- .findFirst ();
87-
88- if ( ctcGTfolder .isPresent () )
89- {
90- batchLogger .log ( "Found a GT folder in CTC format: " + ctcGTfolder .get () + "\n " );
91- gtPath = ctcGTfolder .get ().toString ();
92- }
93- else
94- {
95- batchLogger .log ( "Exporting GT file to CTC format.\n " );
96- gtPath = CTCExporter .exportAll ( resultsRootPath .toString (), trackmate , ExportType .GOLD_TRUTH , batchLogger );
97- gtPath = Paths .get ( gtPath ).getParent ().toString ();
98- }
99- }
100- catch ( final IOException e )
101- {
102- batchLogger .error ( "Error reading the GT parent directory. Stopping."
103- + "\n " + e .getMessage () );
104- e .printStackTrace ();
105- throw new RuntimeException ( e );
106- }
107- }
108-
10970 batchLogger .log ( "Exporting test results to CTC format.\n " );
11071 final int id = CTCExporter .getAvailableDatasetID ( resultsRootPath .toString () );
11172 final String resultsFolder = CTCExporter .getExportTrackingDataPath ( resultsRootPath .toString (), id , ExportType .RESULTS , trackmate );
0 commit comments