def plot(data, gs, mask, p_mask, use_log, custom_transform=lambda x: x): d = to_np_img(data[0]) if use_log: d = cv2.split(d) d = np.dstack((d[0], d[1])) gs = gs[0] d = transform_from_log(d, gs) if d.max() > 1: d = d.astype(int) mask = mask_to_image(to_np_img(mask[0])) p_mask = custom_transform(mask_to_image(to_np_img(p_mask[0]))) visualize(d, p_mask, mask=mask)
def save_mask(name, mask): image, _, _ = load_img_and_gt_crf_dataset(name, path=path, folder=folder, dataset=datatype, use_corrected=use_corrected, rotate=False, use_mask=False) if image.shape[0] > image.shape[1]: fx = image.shape[0] / mask.shape[3] fy = image.shape[1] / mask.shape[2] else: fx = image.shape[1] / mask.shape[3] fy = image.shape[0] / mask.shape[2] rot_mask = cv2.resize(mask_to_image(to_np_img(mask)), (0, 0), fx=fx, fy=fy) if image.shape[0] > image.shape[1]: rot_mask = cv2.flip(rot_mask, -1) rot_mask = cv2.flip(rot_mask, 0) rot_mask = cv2.rotate(rot_mask, cv2.ROTATE_180) fld = f'{path}/{folder}/pmasks6{"-cor" if use_corrected else ""}{"-custom" if custom else ""}{"-reg" if reg else ""}' if not os.path.exists(fld): os.mkdir(fld) rot_mask = cv2.cvtColor(rot_mask, cv2.COLOR_RGB2BGR) cv2.imwrite(f'{fld}/{name}', rot_mask)
def plot(data, gs, gt, p_mask, use_log, custom_transform=lambda x: x): d = to_np_img(data[0]) gt = to_np_img(gt[0]) p_mask = to_np_img(p_mask[0]) if use_log: d = cv2.split(d) d = np.dstack((d[0], d[1])) gs = gs[0] d = transform_from_log(d, gs) if d.max() > 1: d = d.astype(int) gt = gt.astype(np.uint8) p_mask = np.clip(p_mask, 0, 255).astype(np.uint8) p_mask = custom_transform( cv2.cvtColor(to_np_img(p_mask), cv2.COLOR_LUV2RGB)) visualize(d, p_mask, mask=gt)
def plot(data, gs, mask, p_mask, use_log, reg, custom_transform=lambda x: x, use_mixture=False): d = to_np_img(data[0]) if use_log: d = cv2.split(d) d = np.dstack((d[0], d[1])) gs = gs[0] d = transform_from_log(d, gs) if d.max() > 10: d = d.astype(int) if reg: p_mask = to_np_img(p_mask[0]) p_mask = p_mask.astype(np.uint8) p_mask = cv2.cvtColor(to_np_img(p_mask), cv2.COLOR_LUV2RGB) mask = to_np_img(mask[0]) mask = mask.astype(np.uint8) mask = cv2.cvtColor(to_np_img(mask), cv2.COLOR_LUV2RGB) else: mask = mask_to_image(to_np_img(mask[0])) p_mask = custom_transform( mask_to_image(to_np_img(p_mask[0]), use_mixture=use_mixture)) visualize(d, p_mask, mask=mask)
def color_correct_with_mask(img, mask, c1, c2, filter=lambda x: x): mask = to_np_img(mask) mask = mask / (np.max(mask)) mask = np.clip(mask, 0, 1) # c1 = torch.tensor(c1) # c2 = torch.tensor(c2) # gt = np.array( # [[c2 * pixel[0] + c1 * (1 - pixel[0]) for pixel in row] for row in mask]) gt = np.array([[c1 * (1 - pixel[0]) + c2 * pixel[0] for pixel in row] for row in mask]) gt = filter(gt) gt = torch.tensor(gt) return color_correct_tensor(img[0], gt), gt
def plot(data, gt, out_a, gs, gt_gs): gs = gs[0] gt_gs = np.array([[np.array(gt_gs[0]) for i in range(64)] for j in range(64)]) d = to_np_img(data[0]) d = cv2.split(d) d = np.dstack((d[0], d[1])) d = transform_from_log(d, gs) gt_img = np.array([[np.array(gt[0].cpu()) for i in range(64)] for j in range(64)]) gt_img = transform_from_log(gt_img, gt_gs) pred_img = np.array( [[out_a[0].detach().cpu().numpy() for i in range(64)] for j in range(64)]) pred_img = transform_from_log(pred_img, gt_gs) visualize(d, gt_img, pred_img)