Spaces:
Runtime error
Runtime error
| import rawpy | |
| import numpy as np | |
| import glob, os | |
| import colour_demosaicing | |
| import imageio | |
| import argparse | |
| from PIL import Image as PILImage | |
| import scipy.io as scio | |
| parser = argparse.ArgumentParser(description="data preprocess") | |
| parser.add_argument("--camera", type=str, default="NIKON_D700", help="Camera Name") | |
| parser.add_argument( | |
| "--Bayer_Pattern", type=str, default="RGGB", help="Bayer Pattern of RAW" | |
| ) | |
| parser.add_argument( | |
| "--JPEG_Quality", type=int, default=90, help="Jpeg Quality of the ground truth." | |
| ) | |
| args = parser.parse_args() | |
| camera_name = args.camera | |
| Bayer_Pattern = args.Bayer_Pattern | |
| JPEG_Quality = args.JPEG_Quality | |
| dng_path = sorted(glob.glob("/mnt/nvme2n1/hyz/data/" + camera_name + "/DNG/*.cr2")) | |
| rgb_target_path = "/mnt/nvme2n1/hyz/data/" + camera_name + "/RGB/" | |
| raw_input_path = "/mnt/nvme2n1/hyz/data/" + camera_name + "/RAW/" | |
| if not os.path.isdir(rgb_target_path): | |
| os.mkdir(rgb_target_path) | |
| if not os.path.isdir(raw_input_path): | |
| os.mkdir(raw_input_path) | |
| def flip(raw_img, flip): | |
| if flip == 3: | |
| raw_img = np.rot90(raw_img, k=2) | |
| elif flip == 5: | |
| raw_img = np.rot90(raw_img, k=1) | |
| elif flip == 6: | |
| raw_img = np.rot90(raw_img, k=3) | |
| else: | |
| pass | |
| return raw_img | |
| for path in dng_path: | |
| print("Start Processing %s" % os.path.basename(path)) | |
| raw = rawpy.imread(path) | |
| file_name = path.split("/")[-1].split(".")[0] | |
| im = raw.postprocess(use_camera_wb=True, no_auto_bright=True) | |
| flip_val = raw.sizes.flip | |
| cwb = raw.camera_whitebalance | |
| raw_img = raw.raw_image_visible | |
| if camera_name == "Canon_EOS_5D": | |
| raw_img = np.maximum(raw_img - 127.0, 0) | |
| de_raw = colour_demosaicing.demosaicing_CFA_Bayer_bilinear(raw_img, Bayer_Pattern) | |
| de_raw = flip(de_raw, flip_val) | |
| rgb_img = PILImage.fromarray(im).save( | |
| rgb_target_path + file_name + ".jpg", quality=JPEG_Quality, subsampling=1 | |
| ) | |
| np.savez(raw_input_path + file_name + ".npz", raw=de_raw, wb=cwb) | |