]> granicus.if.org Git - libvpx/commitdiff
Add Ground Truth Estimator
authorDan Zhu <zxdan@google.com>
Thu, 18 Jul 2019 02:36:32 +0000 (19:36 -0700)
committerDan Zhu <zxdan@google.com>
Tue, 23 Jul 2019 16:55:03 +0000 (09:55 -0700)
Change-Id: Iec6c7e49a64610e33a77c7d5d772e6b063a0f1e0

tools/3D-Reconstruction/MotionEST/GroundTruth.py [new file with mode: 0644]

diff --git a/tools/3D-Reconstruction/MotionEST/GroundTruth.py b/tools/3D-Reconstruction/MotionEST/GroundTruth.py
new file mode 100644 (file)
index 0000000..61b4bef
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# 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):
+    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=np.bool)
+    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=np.int)