def test3(): """ Edge with margins clipped """ dir_pth = "/home/quanquan/oneshot-landmark/dataset/Cephalometric/RawImage/TrainingData/" save_pth = "/home/quanquan/oneshot-landmark/dataset/Cephalometric/RawImage/edge/" filenames = [x.name for x in os.scandir(dir_pth) if x.name.endswith('.bmp')] filenames.sort() for filename in filenames: file_pth = tfilename(dir_pth, filename) img = Image.open(file_pth).convert('RGB') img = img.resize((384,384)) # print(type(img)) img_np = np.array(img) # print(img_np.shape) # import ipdb;ipdb.set_trace() # print(img_np.shape) mask = canny(img_np) assert len(mask.shape) == 2 margin = int(mask.shape[0] * 0.05) m, n = mask.shape mask[m-margin:, :] = 0 mask[:margin, :] = 0 mask[:, :margin] = 0 mask[:, m-margin:] = 0 mask = Image.fromarray(mask) mask.save(tfilename(save_pth, f"{filename[:-4]}_bg2.png")) print("Save over: ", tfilename(save_pth, f"{filename[:-4]}_bg2.png"))
def print_normal(normal, is_gt, epoch=0, fname=None): # [0,1] subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) normal = normal * 255 normal = normal.astype(np.uint8) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"normal_"+subtitle+"/nor_"+generate_name()+".jpg") cv2.imwrite(fname, normal)
def print_depth(depth, is_gt, epoch=0, fname=None): # [0,1] subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) depth = depth * 255 depth = depth.astype(np.uint8) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"depth_"+subtitle+"/depth_"+generate_name()+".jpg") cv2.imwrite(fname, depth)
def print_back(background, is_gt, epoch=0, fname=None): # [0,1] subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) background = background * 255 background = background.astype(np.uint8) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"bg_"+subtitle+"/bg_"+generate_name()+".jpg") cv2.imwrite(fname, background)
def print_exr(cmap, is_gt, epoch=0, fname=None): # [0,1] subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) cmap = cmap * 255 cmap = cmap.astype(np.uint8) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"exr_"+subtitle+"/cmap_"+generate_name()+".jpg") cv2.imwrite(fname, cmap)
def print_uv(uv, is_gt, epoch=0, fname=None): # [0,1] subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) w,h,c = uv.shape uv = uv*255 uv = uv.astype(np.uint8) bb = np.zeros((w,h,1)) uv = np.concatenate([uv, bb], axis=2) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"uv_"+subtitle+"/uv_"+generate_name()+".jpg") #d("print_uv func: ") #print(np.sum(uv[:,:,2])) cv2.imwrite(fname, uv)
def print_bw(bw, is_gt, epoch=0, fname=None): subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) assert np.max(bw) > 1, "Value Error??? all vallues <= 1" assert np.ndim(bw) == 3, "np.ndim Error" # print("print_bw: bw.shape", bw.shape) w,h,c = bw.shape bw = bw.astype(np.uint8) bb = np.zeros((w,h,1)) bw = np.concatenate([bw, bb], axis=2) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"bw_"+subtitle+"/bw_"+generate_name()+".jpg") cv2.imwrite(fname, bw)
def print_deform(df, is_gt, epoch=0, fname=None): subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) df = df / 2.0 + 255. / 2. df = df.astype(np.uint8) w,h,c = df.shape bb = np.zeros((w,h,1)) df = np.concatenate([df, bb], axis=2) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"df_"+subtitle+"/df_"+generate_name()+".jpg") cv2.imwrite(fname, df) ### For test cv2.imwrite(tfilename("df_test/c1.jpg"), df[:,:,0]) cv2.imwrite(tfilename("df_test/c2.jpg"), df[:,:,1])
def test2(): """ Standard Edge """ dir_pth = "/home/quanquan/oneshot-landmark/dataset/Cephalometric/RawImage/TrainingData/" save_pth = "/home/quanquan/oneshot-landmark/dataset/Cephalometric/RawImage/edge/" filenames = [x.name for x in os.scandir(dir_pth) if x.name.endswith('.bmp')] filenames.sort() for filename in filenames: file_pth = tfilename(dir_pth, filename) img = Image.open(file_pth).convert('RGB') img = img.resize((384,384)) # print(type(img)) img_np = np.array(img) # print(img_np.shape) mask = canny(img_np) mask = Image.fromarray(mask) mask.save(tfilename(save_pth, f"{filename[:-4]}_bg.png")) print("Save over: ", tfilename(save_pth, f"{filename[:-4]}_bg.png"))
def print_deform_from_bw(bw, is_gt, epoch=0, fname=None): imsize = bw.shape[1] x = np.arange(imsize) y = np.arange(imsize) xi, yi = np.meshgrid(x, y) bw[:,:,0] = bw[:,:,0] - xi bw[:,:,1] = bw[:,:,1] - yi subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) assert np.max(bw) > 1, "Value Error??? all vallues <= 1" assert np.ndim(bw) == 3, "np.ndim Error" # print("print_bw: bw.shape", bw.shape) bw = bw.astype(np.uint8) w,h,c = bw.shape bb = np.zeros((w,h,1)) bw = np.concatenate([bw, bb], axis=2) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"bw_"+subtitle+"/bw_"+generate_name()+".jpg") cv2.imwrite(fname, bw)
def test(self, logger, config, args): model = Learner(config, logger) epoch = args.epoch pth = tfilename(config['runs_dir'], f"model_epoch_{epoch}.pth") model.load(pth) model.cuda() tester_train = Tester(logger, config, mode="Train") tester_test = Tester(logger, config, mode="Test1+2") logger.info(f"Dataset Training") tester_train.test(model) logger.info(f"Dataset Test 1+2") tester_test.test(model)
def init_dirs(config): for dirname in config['basic_dirs']: tdir(dirname) # Make __init__.py for each dir make_file(tfilename(dirname, '__init__.py'))
def print_ab(ab, is_gt, epoch=0, fname=None): subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) ab = ab.astype(np.uint8) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"ab_"+subtitle+"/ab_"+generate_name()+".jpg") cv2.imwrite(fname, ab)
def print_ori_dewarp(ori, is_gt, epoch=0, fname=None): subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"ori_dewarp"+subtitle+"/bw_uv_"+generate_name()+".jpg") print_ori(ori, is_gt, epoch=epoch, fname=fname)
def print_ori(ori, is_gt, epoch=0, fname=None): subtitle = "gt" if is_gt else "pred" epoch_text = "epoch{}".format(epoch) ori = ori.astype(np.uint8) fname = tfilename(fname) if fname is not None else tfilename("imgshow",epoch_text,"ori_"+subtitle+"/ori_"+generate_name()+".jpg") cv2.imwrite(fname, ori)
img_rgb = np.round(img_rgb) s_x = s_x[mask] s_y = s_y[mask] index = np.argwhere(mask) t_y = index[:, 0] # t_y and t_x is a map t_x = index[:, 1] # x = np.arange(expand_size) # y = np.arange(expand_size) # xi, yi = np.meshgrid(x, y) mesh = np.zeros((expand_size, expand_size)) def test_new_img(img_path, output_name): # cv2.imread() uv = cv2.imread(img_path, cv2.IMREAD_UNCHANGED) #[0,1] uv = uv[:,:,1:] print_img_auto(uv, "uv", fname=output_name) if __name__ == "__main__": import os from tutils import tfilename dirname = "/home1/quanquan/datasets/generate/mesh_film_small/uv" for x in os.scandir(dirname): if x.name.endswith("exr"): test_new_img(x.path, tfilename("test_img_old", x.name[:-4]+".jpg")) print(x.name)