## 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=np.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=np.int) else: self.mf = mf self.mask = mask