Spaces:
Runtime error
Runtime error
| import os | |
| import numpy as np | |
| import h5py | |
| import cv2 | |
| class standard_reader: | |
| def __init__(self, config): | |
| self.raw_dir = config["rawdata_dir"] | |
| self.dataset = h5py.File(config["dataset_dir"], "r") | |
| self.num_kpt = config["num_kpt"] | |
| def run(self, index): | |
| K1, K2 = np.asarray(self.dataset["K1"][str(index)]), np.asarray( | |
| self.dataset["K2"][str(index)] | |
| ) | |
| R = np.asarray(self.dataset["R"][str(index)]) | |
| t = np.asarray(self.dataset["T"][str(index)]) | |
| t = t / np.sqrt((t**2).sum()) | |
| desc1, desc2 = ( | |
| self.dataset["desc1"][str(index)][()][: self.num_kpt], | |
| self.dataset["desc2"][str(index)][()][: self.num_kpt], | |
| ) | |
| x1, x2 = ( | |
| self.dataset["kpt1"][str(index)][()][: self.num_kpt], | |
| self.dataset["kpt2"][str(index)][()][: self.num_kpt], | |
| ) | |
| e, f = self.dataset["e"][str(index)][()], self.dataset["f"][str(index)][()] | |
| img1_path, img2_path = ( | |
| self.dataset["img_path1"][str(index)][()][0].decode(), | |
| self.dataset["img_path2"][str(index)][()][0].decode(), | |
| ) | |
| img1, img2 = cv2.imread(os.path.join(self.raw_dir, img1_path)), cv2.imread( | |
| os.path.join(self.raw_dir, img2_path) | |
| ) | |
| info = { | |
| "index": index, | |
| "K1": K1, | |
| "K2": K2, | |
| "R": R, | |
| "t": t, | |
| "x1": x1, | |
| "x2": x2, | |
| "desc1": desc1, | |
| "desc2": desc2, | |
| "img1": img1, | |
| "img2": img2, | |
| "e": e, | |
| "f": f, | |
| "r_gt": R, | |
| "t_gt": t, | |
| } | |
| return info | |
| def close(self): | |
| self.dataset.close() | |
| def __len__(self): | |
| return len(self.dataset["K1"]) | |