def __getitem__(self, index): rgb, sparse, target, rgb_near = self.__getraw__(index) rgb, sparse, target, rgb_near = self.transform(rgb, sparse, target, rgb_near, self.args) r_mat, t_vec = None, None if self.split == 'train' and self.args.use_pose: success, r_vec, t_vec = get_pose_pnp(rgb, rgb_near, sparse, self.K) # discard if translation is too small success = success and LA.norm(t_vec) > self.threshold_translation if success: r_mat, _ = cv2.Rodrigues(r_vec) else: # return the same image and no motion when PnP fails rgb_near = rgb t_vec = np.zeros((3, 1)) r_mat = np.eye(3) rgb, gray = handle_gray(rgb, self.args) candidates = {"rgb":rgb, "d":sparse, "gt":target, \ "g":gray, "r_mat":r_mat, "t_vec":t_vec, "rgb_near":rgb_near} items = { key: to_float_tensor(val) for key, val in candidates.items() if val is not None } return items
def __getitem__(self, index): # target intensity as intensity_real rgb, sparse, target, rgb_near, sparse_intensity, target_intensity, target_intensity_pure = self.__getraw__( index) rgb, sparse, target, rgb_near, sparse_intensity, target_intensity, target_intensity_pure \ = self.transform(rgb, sparse, target,sparse_intensity, target_intensity, rgb_near, self.args, target_intensity_pure) r_mat, t_vec = None, None if self.split == 'train' and self.args.use_pose: success, r_vec, t_vec = get_pose_pnp(rgb, rgb_near, sparse, self.K) # discard if translation is too small success = success and LA.norm(t_vec) > self.threshold_translation if success: r_mat, _ = cv2.Rodrigues(r_vec) else: # return the same image and no motion when PnP fails rgb_near = rgb t_vec = np.zeros((3, 1)) r_mat = np.eye(3) rgb, gray = handle_gray(rgb, self.args) # Ireal as gt_intensity candidates = {"rgb":rgb, "d":sparse, "gt":target, \ "intensity":sparse_intensity, "gt_intensity":target_intensity, \ "g":gray, "r_mat":r_mat, "t_vec":t_vec, "rgb_near":rgb_near, \ "gt_intensity_pure":target_intensity_pure} items = { key: to_float_tensor(val) for key, val in candidates.items() if val is not None } filename = self.paths['d'][index].split('/')[-1] items["filename"] = filename return items
def __getitem__(self, index): rgb, sparse, target, rgb_near = self.__getraw__(index) #im = Image.fromarray(rgb) #im.save("orig.jpg") print(f"sparse: {len(np.where(sparse)[0] > 0)}") print(f"dense gt: {len(np.where(target)[0] > 0)}") rgb, sparse, target, rgb_near = self.transform(rgb, sparse, target, rgb_near, self.args) #im = Image.fromarray(rgb) #im.save("orig_trans.jpg") print("\ntransform") print(f"sparse: {len(np.where(sparse)[0] > 0)}") print(f"dense gt: {len(np.where(target)[0] > 0)}") r_mat, t_vec = None, None if self.split == 'train' and self.args.use_pose: success, r_vec, t_vec = get_pose_pnp(rgb, rgb_near, sparse, self.K) # discard if translation is too small success = success and LA.norm(t_vec) > self.threshold_translation if success: r_mat, _ = cv2.Rodrigues(r_vec) else: # return the same image and no motion when PnP fails rgb_near = rgb t_vec = np.zeros((3, 1)) r_mat = np.eye(3) rgb_col = rgb #return rgb None if the option in args.input is not rgb rgb, gray = handle_gray(rgb, self.args) candidates = {"rgb":rgb, "d":sparse, "gt":target, \ "g":gray, "r_mat":r_mat, "t_vec":t_vec, "rgb_near":rgb_near} items = { key: to_float_tensor(val) for key, val in candidates.items() if val is not None } items['d_path'] = self.paths['d'][index] return items