|
import os |
|
from PIL import Image |
|
import numpy as np |
|
import argparse |
|
|
|
if __name__ == "__main__": |
|
parser = argparse.ArgumentParser() |
|
parser.add_argument('--threshold', default=0.2, type=float, help='Path to option YMAL file.') |
|
args = parser.parse_args() |
|
|
|
input_folder = 'results/test_age-set' |
|
output_folder = 'results/mask' |
|
|
|
for filename in os.listdir(input_folder): |
|
if filename.endswith('_0_0_LRGT.png'): |
|
digits = filename.split('_')[0] |
|
if digits.isdigit(): |
|
digits = int(digits) |
|
|
|
if digits >= 0 and digits <= 1000: |
|
|
|
input_path_LRGT = os.path.join(input_folder, filename) |
|
input_path_SR_h = os.path.join(input_folder, filename).replace('LRGT', 'SR_h') |
|
|
|
image_LRGT = Image.open(input_path_LRGT).convert("RGB") |
|
image_SR_h = Image.open(input_path_SR_h).convert("RGB") |
|
|
|
w, h = image_SR_h.size |
|
image_LRGT = image_LRGT.resize((w, h)) |
|
|
|
array_LRGT = np.array(image_LRGT) / 255. |
|
array_SR_h = np.array(image_SR_h) / 255. |
|
|
|
residual = np.abs(array_LRGT - array_SR_h) |
|
|
|
threshold = args.threshold |
|
mask = np.where(residual > threshold, 1, 0) |
|
|
|
os.makedirs(output_folder, exist_ok=True) |
|
|
|
output_path = os.path.join(output_folder, str(digits+1).zfill(4)+'.png') |
|
|
|
mask = np.sum(mask, axis=2) |
|
|
|
mask_image = Image.fromarray((mask * 255).astype(np.uint8)) |
|
mask_image.save(output_path) |