|
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']) |