import os from torch.utils.data import Dataset from src.utils.dataset import read_img_gray class InLocDataset(Dataset): def __init__(self, img_path, match_list_path, img_resize=None, down_factor=16): self.img_path = img_path self.img_resize = img_resize self.down_factor = down_factor with open(match_list_path, "r") as f: self.raw_pairs = f.readlines() print("number of matching pairs: ", len(self.raw_pairs)) def __len__(self): return len(self.raw_pairs) def __getitem__(self, idx): raw_pair = self.raw_pairs[idx] image_name0, image_name1 = raw_pair.strip("\n").split(" ") path_img0 = os.path.join(self.img_path, image_name0) path_img1 = os.path.join(self.img_path, image_name1) img0, scale0 = read_img_gray( path_img0, resize=self.img_resize, down_factor=self.down_factor ) img1, scale1 = read_img_gray( path_img1, resize=self.img_resize, down_factor=self.down_factor ) return { "image0": img0, "image1": img1, "scale0": scale0, "scale1": scale1, "pair_names": (image_name0, image_name1), "dataset_name": "InLoc", }