From 3c15ae4abd778a8ca4acdce32a8c44a87d43a036 Mon Sep 17 00:00:00 2001 From: Vojtech Moravec <vojtech.moravec.st@vsb.cz> Date: Thu, 26 Nov 2020 11:00:02 +0100 Subject: [PATCH] Add commented out smape metric. --- .../functions/MeasurePlaneErrorFunction.java | 13 ++++++++-- .../it4i/qcmp/cli/functions/PlaneError.java | 25 ------------------- 2 files changed, 11 insertions(+), 27 deletions(-) delete mode 100644 src/main/java/cz/it4i/qcmp/cli/functions/PlaneError.java diff --git a/src/main/java/cz/it4i/qcmp/cli/functions/MeasurePlaneErrorFunction.java b/src/main/java/cz/it4i/qcmp/cli/functions/MeasurePlaneErrorFunction.java index 9c6772a..8b66fb9 100644 --- a/src/main/java/cz/it4i/qcmp/cli/functions/MeasurePlaneErrorFunction.java +++ b/src/main/java/cz/it4i/qcmp/cli/functions/MeasurePlaneErrorFunction.java @@ -123,17 +123,26 @@ public class MeasurePlaneErrorFunction extends CustomFunctionBase { final OutputStreamWriter reportWriter) throws IOException { final int[][] testData = loadPlanes(testFile, ReferenceFileDimensions); - + final int pixelCount = ReferenceFileDimensions.getNumberOfElementsInDimension(2); reportWriter.write("=========================================\n"); reportWriter.write(testFile); reportWriter.write('\n'); reportWriter.write("=========================================\n"); - reportWriter.write("PlaneIndex;ErrorSum;MeanError\n"); + reportWriter.write("PlaneIndex;ErrorSum;MeanError\n"); //;SMAPE final int planePixelCount = ReferenceFileDimensions.getNumberOfElementsInDimension(2); final int[] diffData = new int[planePixelCount]; for (int plane = 0; plane < ReferenceFileDimensions.getPlaneCount(); plane++) { + // NOTE(Moravec): SMAPE metric. https://en.wikipedia.org/wiki/Symmetric_mean_absolute_percentage_error + // double numerator = 0; + // double denominator = 0; + // for (int i = 0; i < pixelCount; i++) { + // numerator += Math.abs((double) testData[plane][i] - (double) referenceData[plane][i]); + // denominator += ((double) referenceData[plane][i] + (double) testData[plane][i]); + // } + // assert (denominator != 0) : "SMAPE denominator can't be zero."; + // final double SMAPE = numerator / denominator; Utils.differenceToArray(referenceData[plane], testData[plane], diffData); Utils.applyAbsFunction(diffData); diff --git a/src/main/java/cz/it4i/qcmp/cli/functions/PlaneError.java b/src/main/java/cz/it4i/qcmp/cli/functions/PlaneError.java deleted file mode 100644 index 45031c9..0000000 --- a/src/main/java/cz/it4i/qcmp/cli/functions/PlaneError.java +++ /dev/null @@ -1,25 +0,0 @@ -package cz.it4i.qcmp.cli.functions; - -public class PlaneError { - private final int planeIndex; - private final double absoluteError; - private final double meanAbsoluteError; - - public PlaneError(final int planeIndex, final double absoluteError, final double meanAbsoluteError) { - this.planeIndex = planeIndex; - this.absoluteError = absoluteError; - this.meanAbsoluteError = meanAbsoluteError; - } - - public int getPlaneIndex() { - return planeIndex; - } - - public double getAbsoluteError() { - return absoluteError; - } - - public double getMeanAbsoluteError() { - return meanAbsoluteError; - } -} -- GitLab