aboutsummaryrefslogtreecommitdiff
path: root/tools/3D-Reconstruction/MotionEST/GroundTruth.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/3D-Reconstruction/MotionEST/GroundTruth.py')
-rw-r--r--tools/3D-Reconstruction/MotionEST/GroundTruth.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/tools/3D-Reconstruction/MotionEST/GroundTruth.py b/tools/3D-Reconstruction/MotionEST/GroundTruth.py
new file mode 100644
index 000000000..37305898a
--- /dev/null
+++ b/tools/3D-Reconstruction/MotionEST/GroundTruth.py
@@ -0,0 +1,48 @@
+## Copyright (c) 2020 The WebM project authors. All Rights Reserved.
+##
+## Use of this source code is governed by a BSD-style license
+## that can be found in the LICENSE file in the root of the source
+## tree. An additional intellectual property rights grant can be found
+## in the file PATENTS. All contributing project authors may
+## be found in the AUTHORS file in the root of the source tree.
+##
+
+#coding : utf - 8
+import numpy as np
+import numpy.linalg as LA
+from MotionEST import MotionEST
+"""Ground Truth:
+
+ Load in ground truth motion field and mask
+"""
+
+
+class GroundTruth(MotionEST):
+ """constructor:
+
+ cur_f:current
+ frame ref_f:reference
+ frame blk_sz:block size
+ gt_path:ground truth motion field file path
+ """
+
+ def __init__(self, cur_f, ref_f, blk_sz, gt_path, mf=None, mask=None):
+ self.name = 'ground truth'
+ super(GroundTruth, self).__init__(cur_f, ref_f, blk_sz)
+ self.mask = np.zeros((self.num_row, self.num_col), dtype=bool)
+ if gt_path:
+ with open(gt_path) as gt_file:
+ lines = gt_file.readlines()
+ for i in xrange(len(lines)):
+ info = lines[i].split(';')
+ for j in xrange(len(info)):
+ x, y = info[j].split(',')
+ #-, - stands for nothing
+ if x == '-' or y == '-':
+ self.mask[i, -j - 1] = True
+ continue
+ #the order of original file is flipped on the x axis
+ self.mf[i, -j - 1] = np.array([float(y), -float(x)], dtype=int)
+ else:
+ self.mf = mf
+ self.mask = mask