Python 代码逐行解析:图像处理与直方图生成
"if name == "main":"\n" re_size = 299\n" parser = argparse.ArgumentParser()\n" parser.add_argument('--lib_path', type=str, default='dataset/150_20_hist.npy', help='Path of color distribution library.')\n" parser.add_argument('--img_dir', type=str, default='dataset/images', help='input images directory')\n" parser.add_argument('--masks_path', type=str, default='segm/masks.npy', help='mask path')\n" parser.add_argument('--out_lib_dir', type=str, default='dataset/lib_299', help='mask path')\n" opt = parser.parse_args()\n" device = torch.device('cpu') # cuda:0\n" mkdir(opt.out_lib_dir)\n" all_hist = torch.tensor(np.load(opt.lib_path)) #(150,20,32,32,32)\n" masks = np.load(opt.masks_path) # (1000,299,299)\n" imgs_list = os.listdir(opt.img_dir)\n" (imgs_list).sort()\n" for name in tqdm(imgs_list):\n" img_idx = int(name.split(".")[0])\n" # load mask\n" mask = torch.tensor(masks[img_idx-1:img_idx], dtype=torch.int, device=device)\n" mask = torchvision.transforms.functional.resize(mask, [re_size, re_size], torchvision.transforms.InterpolationMode.NEAREST)\n" all_objects, area_objs = pick_candidate(mask)\n" # load image\n" img_path = os.path.join(opt.img_dir, name)\n" pil_image = Image.open(img_path).convert('RGB').resize((re_size, re_size))\n" image = torch.tensor(np.array(pil_image), device=device) / 255. # (H, W, 3)\n" # lib\n" target_hist = all_hist[all_objects-1]\n" hist_imgs = hist2img_multi(image.numpy(), mask[0].numpy(), all_objects.numpy(), target_hist.numpy(), area_objs.numpy(), bin=32) # (20, H, W, 3)\n" # Save\n" hist_imgs = torch.tensor(hist_imgs).permute(0,3,1,2)\n" torchvision.utils.save_image(hist_imgs, os.path.join(opt.out_lib_dir, name))
原文地址: https://www.cveoy.top/t/topic/pFUE 著作权归作者所有。请勿转载和采集!