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