|
import json |
|
import cv2 |
|
import os |
|
from basicsr.utils import img2tensor |
|
|
|
|
|
class DepthDataset(): |
|
def __init__(self, meta_file): |
|
super(DepthDataset, self).__init__() |
|
|
|
self.files = [] |
|
with open(meta_file, 'r') as f: |
|
lines = f.readlines() |
|
for line in lines: |
|
img_path = line.strip() |
|
depth_img_path = img_path.rsplit('.', 1)[0] + '.depth.png' |
|
txt_path = img_path.rsplit('.', 1)[0] + '.txt' |
|
self.files.append({'img_path': img_path, 'depth_img_path': depth_img_path, 'txt_path': txt_path}) |
|
|
|
def __getitem__(self, idx): |
|
file = self.files[idx] |
|
|
|
im = cv2.imread(file['img_path']) |
|
im = img2tensor(im, bgr2rgb=True, float32=True) / 255. |
|
|
|
depth = cv2.imread(file['depth_img_path']) |
|
depth = img2tensor(depth, bgr2rgb=True, float32=True) / 255. |
|
|
|
with open(file['txt_path'], 'r') as fs: |
|
sentence = fs.readline().strip() |
|
|
|
return {'im': im, 'depth': depth, 'sentence': sentence} |
|
|
|
def __len__(self): |
|
return len(self.files) |
|
|